[英]How can I obtain axial slices of a 3D medical image saved as numpy array in python?
[英]I have a 3D numpy array. I want to flatten slices of it and then turn it back into the same 3D array. How can I do that?(python)
我基本上有一個形狀為 (9400,20,30) 的 numpy 數組。
我想取 200 個二維 arrays(形狀 = (200,20,30))的切片,然后將它們展平以進行一些計算。
然后我想把陣列變回我原來的 (9400,20,30) 形狀。
歡迎任何幫助! 謝謝!
你應該像這樣切片並重塑它:
smallArray = bigArray[:200]
bigArray = bigArray[200:]
print(f'bigArray sliced shape: {np.shape(bigArray)}')
print(f'smallArray shape: {np.shape(smallArray)}')
smallArray = smallArray.flatten()
print(f'smallArray flattened: {np.shape(smallArray)}')
smallArray = np.reshape(smallArray, (200,30,20))
print(f'smallArray reshaped shape: {np.shape(smallArray)}')
PD:我不確定對大數組進行切片是一個好主意,因為那樣你將保留一個較小的 arrays 數組以在之后對其進行重塑,考慮離開它並嘗試:
smallArray = bigArray[i*200:(i+1)*200]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.