从数组中删除元素

14 投票
4 回答
59555 浏览
提问于 2025-04-17 00:03

我有一个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个元素。

撰写回答