簡體   English   中英

想要在numpy中附加2個2d數組

[英]Want to append 2 2d arrays in numpy

我正在嘗試附加2個2d numpy數組

a = np.array([[1],
       [2],
       [3],
       [4]])

b = np.array([[ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]])

目標是

c = ([[1],
       [2],
       [3],
       [4],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]])

嘗試過np.concatenate((a,b),axis=0)np.concatenate((a,b),axis=1)並得到

ValueError: all the input array dimensions except for the concatenation axis must match exactly

np.append(a,b)

但是似乎沒有任何作用。 如果我轉換為列表,它會給我我想要的結果,但效率低下

c = a.tolist() + b.tolist()

有什么麻木的方式做到這一點嗎?

如錯誤所示,尺寸必須匹配。

因此,您可以調整a大小,使其與b的尺寸匹配,然后連接(空單元格用零填充)。

a.resize(3,4)
a = a.transpose()
np.concatenate((a,b))

array([[ 1,  0,  0],
       [ 2,  0,  0],
       [ 3,  0,  0],
       [ 4,  0,  0],
       [ 4,  5,  6],
       [ 7,  8,  9],
       [10, 11, 12]])

簡短答案-不。 Numpy數組需要為“矩形”; 類似於線性代數中的矩陣。 您可以按照此處的建議並強制執行(由於失去許多功能),或者,如果您確實需要目標,則使用旨在解決該問題的數據結構(如列表)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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