如何将列添加到2D np数组python?

时间:2018-01-03 14:32:57

标签: python arrays numpy

我有一个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
  • 编辑:我不是在这里添加一列零。

4 个答案:

答案 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)

numpy中的

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]])