簡體   English   中英

如何 zip 2D arrays

[英]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.

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