插入一个数组数组作为最后一列

时间:2016-09-02 22:02:37

标签: python numpy

我有一个数组A:

array([[1, 2, 3],
       [1, 1, 1],
       [2, 2, 2]])

和一个数组B:

array([[1, 0],
       [1, 0],
       [0, 1]])

我想将数组B作为数组A的最后一列,所以我希望结果数组(让我们称之为C)如下所示:

array([[1, 2, 3, [1, 0]],
       [1, 1, 1, [1, 0]],
       [2, 2, 2, [0, 1]]])

我试过了np.insert(a,-1,b,axis=1),但这给了我一个错误:

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

2 个答案:

答案 0 :(得分:1)

也许这就是你要找的东西:

import numpy as np
a = np.array([[1, 2, 3],
              [1, 1, 1], 
              [2, 2, 2]])
b = np.array([[1, 0],
              [1, 0],
              [0, 1]])
np.hstack([a,b])

结果是:

array([[1, 2, 3, 1, 0],
       [1, 1, 1, 1, 0],
       [2, 2, 2, 0, 1]])

答案 1 :(得分:1)

print zip(*zip(*a)+[b.tolist(),])

虽然之后它不会是一个numpy阵列

>>> a
array([[1, 2, 3],
       [1, 1, 1],
       [2, 2, 2]])
>>> b
array([[1, 0],
       [1, 0],
       [0, 1]])
>>> zip(*zip(*a)+[b.tolist(),])
[(1, 2, 3, [1, 0]), (1, 1, 1, [1, 0]), (2, 2, 2, [0, 1])]