我有一个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, vstack
和concatenate
,如其他帖子中所述。但是,没有任何作用。我怀疑这是因为数组的类型为<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)]
答案 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]])