我有一个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组成。
对我来说有效:
import numpy as np
a = np.delete(a, k)
其中,“a”是您的NumPy数组,k是您要删除的索引位置。
希望能有所帮助。
NumPy数组不支持元素删除。为什么不使用切片来实现你想要的效果呢?
a = a[3:]
a = np.array([1,2,3,4,5])
l = list(a)
l.pop(3)
l
>>[1, 2, 3, 5]
copy
包中的deepcopy
函数,执行a = deepcopy(a[3:])
。 - v4gil