我有一个2D数组:
1 2 3 4 5 6
2 6 5 2 4 1
8 7 9 0 0 0
2 3 4 5 6 2
如何在上面的数组中添加一列新的1D数组?
1
0
1
0
这样结果会是这样的吗?
1 2 3 4 5 6 1
2 6 5 2 4 1 0
8 7 9 0 0 0 1
2 3 4 5 6 2 0
答案 0 :(得分:5)
np.concatenate((a,b.reshape(b.shape[0],1)),axis=1)
解决了问题
答案 1 :(得分:1)
使用hstack尝试此操作。 vstack垂直连接和hstack水平连接
>>> a=np.arange(0,24)
>>> a=a.reshape((4,6))
>>> a
array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
>>> b=np.ones((4,1))
>>> c=np.hstack((a,b))
>>> c
array([[ 0., 1., 2., 3., 4., 5., 1.],
[ 6., 7., 8., 9., 10., 11., 1.],
[ 12., 13., 14., 15., 16., 17., 1.],
[ 18., 19., 20., 21., 22., 23., 1.]])
>>>
答案 2 :(得分:0)
append方法将完成这项工作
a=np.array([[1,2,3],[3,4,5]])
b=np.array([[5],[6]])
c=np.append(a,b, axis=1)
print(c)
它输出如下:
[[1 2 3 5]
[3 4 5 6]]
答案 3 :(得分:0)
还可以尝试np.insert
x = np.array([[1, 2, 3, 4, 5, 6],
[2, 6, 5, 2, 4, 1],
[8, 7, 9, 0, 0, 0],
[2, 3, 4, 5, 6, 2]])
y = np.array([1, 0, 1, 0])
# inserting at the 6th column can be achieved with this
np.insert(x, 6, y, axis=1)
array([[1, 2, 3, 4, 5, 6, 1],
[2, 6, 5, 2, 4, 1, 0],
[8, 7, 9, 0, 0, 0, 1],
[2, 3, 4, 5, 6, 2, 0]])