将列向量连接到矩阵的末尾

时间:2019-10-19 17:24:38

标签: python numpy

我试图在矩阵的末尾添加列向量,如下所示:

import numpy as np
datas=[[1,2],[3,4]]
temp=[1,2]
datas=np.array(datas)
temp=np.transpose(np.array(temp))

np.append(datas,temp,axis=1)

但是我遇到尺寸不匹配错误?

那我该如何正确地做到这一点?

2 个答案:

答案 0 :(得分:1)

您需要向temp添加一个维度,以便两个数组都具有相同的维度

import numpy as np
datas=[[1,2],[3,4]]
temp=[1,2]
datas=np.array(datas)
temp=np.array(temp)[:, np.newaxis] ## this adds new dimension 

np.append(datas,temp,axis=1)

您也可以使用以下连接功能来做到这一点。如果要连接两个以上的数组,则性能会更好。在这里,您可以循环创建python列表ls,然后将它们串联起来

ls = [datas,temp]
np.concatenate(ls, axis=1)

答案 1 :(得分:1)

建议您只使用np.expand_dims()然后使用np.hstack()

datas=[[1,2],[3,4]]
temp=[1,2]

#Expand the dims of temp
temp = np.expand_dims(temp,1) 

#Stack horizontally
np.hstack((datas, temp))
array([[1, 2, 1],
       [3, 4, 2]])