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