从数组中删除元素
我有一个numpy数组,我想删除这个数组的前3个元素。我尝试了这个方法:
a = np.arange(0,10)
i=0
while(i<3):
del a[0]
i=i+1
但是我遇到了一个错误,提示“ValueError: 无法删除数组元素”。我不明白为什么会这样。希望能得到帮助,谢谢!
4 个回答
1
numpy数组不支持删除元素。你为什么不直接用切片来实现你想要的呢?
a = a[3:]
16
对我来说,这个方法有效:
import numpy as np
a = np.delete(a, k)
这里的 "a" 是你的 numpy 数组,而 k 是你想要删除的索引位置。
希望这对你有帮助。
23
Numpy数组的大小是固定的,所以你不能直接从里面删除一个元素。想要实现你想要的效果,最简单的方法就是使用切片:
a = a[3:]
这样做会创建一个新数组,从原数组的第4个元素开始。
不过在某些情况下,切片可能不够用。如果你想从原数组中选出特定的元素来创建一个子数组,你可以用另一个数组来选择索引:
>>> a = arange(10, 20)
>>> a[[1, 4, 5]]
array([11, 14, 15])
所以基本上,a[[1,4,5]]
会返回一个新数组,这个新数组包含了原数组中的第1、4和5个元素。