从数组中删除元素

时间:2011-08-21 16:11:50

标签: python numpy

我有一个numpy数组,我想删除数组的前3个元素。我试过这个解决方案:

           a = np.arange(0,10)
           i=0
           while(i<3):
             del a[0]
             i=i+1

这给了我一个错误“ ValueError:无法删除数组元素”。我不明白为什么会这样。我很感激帮助谢谢!

3 个答案:

答案 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:]
相关问题