[英]Contruct 3d array in numpy from existing 2d array
在為NumPy計算准備數據期間。 我很好奇構建方式:
myarray.shape => (2,18,18)
從:
d1.shape => (18,18)
d2.shape => (18,18)
我嘗試使用NumPy命令:
hstack([[d1],[d2]])
但它看起來不起作用!
剛做d3 = array([d1,d2])
似乎對我有用:
>>> from numpy import array
>>> # ... create d1 and d2 ...
>>> d1.shape
(18,18)
>>> d2.shape
(18,18)
>>> d3 = array([d1, d2])
>>> d3.shape
(2, 18, 18)
hstack和vstack不會改變數組的維數:它們只是將它們“並排”。 因此,組合二維陣列會創建一個新的二維陣列(而不是一個3D陣列!)。
你可以做Daniel建議的(直接使用numpy.array([d1, d2])
)。
您也可以在堆疊數組之前將數組轉換為3D數組,方法是為每個數組添加一個新維度:
d3 = numpy.vstack([ d1[newaxis,...], d2[newaxis,...] ]) # shape = (2, 18, 18)
事實上, d1[newaxis,...].shape == (1, 18, 18)
,你可以直接堆疊兩個3D數組並獲得你想要的新3D數組( d3
)。
arr3=np.dstack([arr1, arr2])
arr1,arr2是2d數組shape (256,256)
, shape (256,256)
: shape(256,256,2)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.