[英]How to zip 2D arrays
a=np.array([[1,2,3],[4,5,6],[7,8,9]])
b=np.array([[1,2,3],[4,5,6],[7,8,9]])
我有 2 個相同的 2D arrays,我正在嘗試按元素對它們進行 zip。 它應該看起來像:
[[(1,1) (2,2), (3,3)]
[(4,4) (5,5) (6,6)]
[(7,7) (8,8) (9,9)]]
我試過下面的方法,但沒有成功。 先把arrays、zip他們壓平,轉成列表,再轉成數組再整形。
np.array(list(zip(np.ndarray.flatten(a),np.ndarray.flatten(b)))).reshape(a.shape)
我收到以下錯誤
cannot reshape array of size 18 into shape (3,3)
它沒有將最終數組的元素(1,1) (2,2)
等視為元組,而是作為單個元素。 因此,有 18 個元素。
這個問題已發布一次,但我沒有找到適合我的答案。
不要zip
,使用 numpy 本機功能! 你想要一個dstack
:
out = np.dstack([a, b])
output:
array([[[1, 1],
[2, 2],
[3, 3]],
[[4, 4],
[5, 5],
[6, 6]],
[[7, 7],
[8, 8],
[9, 9]]])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.