目标数组位置为-1的numpy.insert不是最后一个位置

时间:2017-09-02 01:04:01

标签: python arrays numpy

我想在numpy数组的最后位置插入一个值:

a = np.array([[0, 0, 1, 0]])
np.insert(a, -1, 2, 1)
>>>> array([[0, 0, 1, 2, 0]])

np.insert(the_list,the_position,the_value,the_axe)

通常,-1是数组的最后一个位置,但正如您所看到的,新创建的数组为最后一个位置的2。有人可以解释我做错了吗?

1 个答案:

答案 0 :(得分:1)

documentation numpy.insert中所述,在给定索引之前插入给定元素

  

obj int,切片或整数序列

     

定义>之前的索引的对象,其中插入了。 (强调我的)

如果你只想在数组的末尾添加一个元素,那么你正在查找numpy.append,它的工作方式相同,但没有index参数,并添加到列表的末尾。< / p>

  

numpy. append arr,值,轴=无

     

将值附加到数组的末尾。

如果你考虑一下,这就好像你有阵列一样:

[3, 7]

你试图插入值4和索引0,然后它会这样做:

[4, 3, 7]

使用该逻辑,您应该始终添加元素,否则如何将项目放在列表的开头?您需要prepend功能。

如果你需要一个prepend函数或append函数来允许在数组的末尾插入,我认为最有意义的是实现{{1}因为它需要更频繁的功能。