簡體   English   中英

在 Python 中連接二維 numpy arrays

[英]Concatenating 2 dimensional numpy arrays in Python

我想連接這兩個 arrays

a = np.array([[1,2,3],[3,4,5],[6,7,8]])  
b = np.array([9,10,11])

這樣

a = [[1,2,3,9],[3,4,5,10],[6,7,8,11]]

嘗試使用連接

for i in range(len(a)):
  a[i] = np.concatenate(a[i],[b[i]])

出現錯誤:

TypeError: 'list' object cannot be interpreted as an integer

嘗試使用 append

for i in range(len(a)):
  a[i] = np.append(a[i],b[i])

得到另一個錯誤:

ValueError: could not broadcast input array from shape (4,) into shape (3,)

(stackoverflow 的新手,抱歉,如果我沒有很好地格式化這個)

您可以為此使用hstack和矢量廣播:

a = np.array([[1,2,3],[3,4,5],[6,7,8]])  
b = np.array([9,10,11])
res = np.hstack((a, b[:,None]))
print(res)

Output:

[[ 1  2  3  9]
 [ 3  4  5 10]
 [ 6  7  8 11]]

請注意,您不能使用concatenate ,因為數組具有不同的形狀 hstack多維arrays 水平堆疊,所以它只是在此處的末尾添加一個新行。 需要廣播操作( b[:,None] ),以便附加向量是垂直向量。

你可以這樣做:

np.append(a,b.reshape(-1,1),axis=1)

暫無
暫無

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

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