只是想知道为什么这个从数组中删除小数字的小函数不起作用。
def chopper(values):
for i in range(len(values)):
if np.abs(values[i])<10**(-9):
values=np.delete(values,i)
return values
print(chopper(np.array([1,2,10**(-10),-10**(-10),3])))
我希望得到 [1,2,3]。相反,我收到一条错误消息: IndexError:索引 4 超出了大小为 4 的轴 0 的范围
我做错了什么?
谢谢
最佳答案
这是因为每次删除元素时都会减小数组/列表的大小。
如果它是一个 numpy 数组,你可以使用索引:
values = values[np.abs(values) < 1e-9]
关于python - 从数组中删除小元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57390707/