我有一个numpy数组,我想删除数组的前3个元素。我想这个解决方案:从数组中删除元素
a = np.arange(0,10)
i=0
while(i<3):
del a[0]
i=i+1
这给了我一个错误,“ValueError异常:不能删除数组元素”。我不明白为什么会这样。我会感谢帮助,谢谢!
我有一个numpy数组,我想删除数组的前3个元素。我想这个解决方案:从数组中删除元素
a = np.arange(0,10)
i=0
while(i<3):
del a[0]
i=i+1
这给了我一个错误,“ValueError异常:不能删除数组元素”。我不明白为什么会这样。我会感谢帮助,谢谢!
Numpy数组的大小是固定的,因此你不能简单地从它们中删除一个元素。达到你想要什么,最简单的方法是使用切片:
a = a[3:]
这将创建起与原阵列的第四元素的新数组。
对于某些情况,切片是不够的。如果你想创建原始数组由特定元素的子数组,你可以使用另一个阵列来选择指数:
>>> a = arange(10, 20)
>>> a[[1, 4, 5]]
array([11, 14, 15])
所以基本上,a[[1,4,5]]
将返回由元素1,4和数组5原始数组。
numpy数组不支持元素删除。你为什么不使用切片来实现你想要的?
a = a[3:]
我想你是指'[3:]'...? –
@尼尔:你说得对。这实际上是我的第一个版本,但之后,出于某种扭曲的原因,我将其更改为4. –
谢谢!这工作:) – dawnoflife