簡體   English   中英

我有一個 3D numpy 陣列。 我想將其切片,然后將其轉回相同的 3D 陣列。 我該怎么做?(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM