从数组中删除元素

daw*_*ife 3 python numpy

我有一个numpy数组,我想删除数组的前3个元素.我试过这个解决方案:

           a = np.arange(0,10)
           i=0
           while(i<3):
             del a[0]
             i=i+1
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误" ValueError:无法删除数组元素 ".我不明白为什么会这样.我很感激帮助谢谢!

Bjö*_*lex 15

Numpy数组具有固定的大小,因此您不能简单地从它们中删除元素.实现您想要的最简单方法是使用切片:

a = a[3:]
Run Code Online (Sandbox Code Playgroud)

这将创建一个以原始数组的第4个元素开头的新数组.

对于某些情况,切片是不够的.如果要创建由原始数组中的特定元素组成的子数组,可以使用另一个数组来选择索引:

>>> a = arange(10, 20)
>>> a[[1, 4, 5]]
array([11, 14, 15])
Run Code Online (Sandbox Code Playgroud)

所以基本上,a[[1,4,5]]将返回一个由原始数组的元素1,4和5组成的数组.


小智 11

这个对我有用:

import numpy as np
a = np.delete(a, k)
Run Code Online (Sandbox Code Playgroud)

其中“a”是您的 numpy 数组,k 是您要删除的索引位置。

希望能帮助到你。