如何將(4,n,m)
大小的numpy數組重塑爲(n*m,4)
數組?在python中重塑數組
動機來自處理圖像,我想創建一個矩陣,其中行包含每個像素的RGBA值。我試過np.array.reshape(n*m,4)
,但它沒有完成這項工作。也許與movaxis
或swapaxis
結合?
如何將(4,n,m)
大小的numpy數組重塑爲(n*m,4)
數組?在python中重塑數組
動機來自處理圖像,我想創建一個矩陣,其中行包含每個像素的RGBA值。我試過np.array.reshape(n*m,4)
,但它沒有完成這項工作。也許與movaxis
或swapaxis
結合?
的最簡單的方法是將它重塑到(4, n*m)
第一,然後只(使用transpose
或簡單地.T
屬性例如)交換所述第一和最後一個軸:
arr = arr.reshape(4, n*m).T # assuming your array is called "arr"
例如:
>>> import numpy as np
>>> n, m = 20, 30
>>> arr = np.arange(4*n*m).reshape(4, n, m)
>>> arr = arr.reshape(4, n*m).T
>>> arr
array([[ 0, 600, 1200, 1800],
[ 1, 601, 1201, 1801],
[ 2, 602, 1202, 1802],
...,
[ 597, 1197, 1797, 2397],
[ 598, 1198, 1798, 2398],
[ 599, 1199, 1799, 2399]])
歡迎來到stackoverflow!請參考[遊覽](http://stackoverflow.com/tour), [請教如何提問](https://stackoverflow.com/help/asking) 並提供[最小化,完整和可驗證的示例](https://stackoverflow.com/help/mcve) ,重現您的問題。 特別提供輸入,期望的輸出和您編碼解決方案的嘗試。 –
你首先需要'swapaxes'或'transpose',所以形狀是(n,m,4) – hpaulj