Python附加到ndarray

时间:2018-12-30 20:15:41

标签: python arrays numpy

我有一个np.ndarray

[[0 4 0 0] [0 5 8 2] [2 7 3 2]]

我想在位置0处附加另一个元素,以使输出看起来像:

[['cat' 0 4 0 0] ['cat' 0 5 8 2] ['cat' 2 7 3 2]]

我尝试了np.insert, append, vstackconcatenate,如其他帖子中所述。但是,没有任何作用。我怀疑这是因为数组的类型为<class 'numpy.ndarray'>。我还尝试过将其转换为列表,并将其附加到普通np.array上,但是似乎没有任何效果。

有什么想法吗?

编辑:

我尝试过:

    arr=[np.append('cat',i) for i in my_array]

这有效,但是输出看起来像:

[array(['cat' 0 4 0 0], dtype=object), array(['cat' 0 5 8 2], dtype=object), array(['cat' 2 7 3 2], dtype=object)]

1 个答案:

答案 0 :(得分:1)

ndarray同类数据的容器;也就是说,每个元素都必须具有相同的类型。

要使用正确的类型来完成您要执行的操作,就像使用insert一样简单。在此示例中,我沿列轴将-1插入索引0

>>> a
array([[0, 4, 0, 0],
       [0, 5, 8, 2],
       [2, 7, 3, 2]])
>>> np.insert(a, 0, -1, axis=1)
array([[-1,  0,  4,  0,  0],
       [-1,  0,  5,  8,  2],
       [-1,  2,  7,  3,  2]])