首页 > 解决方案 > Python追加到ndarray

问题描述

我有一个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'>. 我也尝试将其转换为 list 并将其附加或附加到 normal 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)]

标签: pythonarraysnumpy

解决方案


Anndarray同质数据的容器;也就是说,每个元素都必须属于同一类型。

要使用正确的类型完成您尝试执行的操作,就像使用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]])

推荐阅读