我有一个numpy数组,我想删除数组的前3个元素。我试过这个解决方案:
a = np.arange(0,10)
i=0
while(i<3):
del a[0]
i=i+1
这给了我一个错误“ ValueError:无法删除数组元素”。我不明白为什么会这样。我很感激帮助谢谢!
答案 0 :(得分:13)
Numpy数组具有固定大小,因此您不能简单地从中删除元素。实现所需目标的最简单方法是使用切片:
a = a[3:]
这将创建一个以原始数组的第4个元素开头的新数组。
对于某些情况,切片是不够的。如果要创建由原始数组中的特定元素组成的子数组,可以使用另一个数组来选择索引:
>>> a = arange(10, 20)
>>> a[[1, 4, 5]]
array([11, 14, 15])
基本上,a[[1,4,5]]
将返回一个由原始数组的元素1,4和5组成的数组。
答案 1 :(得分:3)
它对我有用:
import numpy as np
a = np.delete(a, k)
其中“ a”是您的numpy数组,k是您要删除的索引位置。
希望有帮助。
答案 2 :(得分:1)
numpy数组不支持删除元素。为什么不用切片来达到你想要的效果呢?
a = a[3:]