NumPy数组的大小是固定的,因此不能就地移除元素。例如,使用del不起作用:>>> import numpy as np
>>> arr = np.arange(5)
>>> del arr[-1]
ValueError: cannot delete array elements
注意,索引-1表示最后一个元素。这是因为Python(和NumPy)中的负索引是从末尾开始计算的,所以-1是最后一个,-2是最后一个之前的那个,-len实际上是第一个元素。那只是为了你的信息,以防你不知道。
Python列表的大小是可变的,因此添加或删除元素很容易。
所以如果你想删除一个元素,你需要创建一个新的数组或视图。
创建新视图
可以使用切片表示法创建包含除最后一个元素外的所有元素的新视图:>>> arr = np.arange(5)
>>> arr
array([0, 1, 2, 3, 4])
>>> arr[:-1] # all but the last element
array([0, 1, 2, 3])
>>> arr[:-2] # all but the last two elements
array([0, 1, 2])
>>> arr[1:] # all but the first element
array([1, 2, 3, 4])
>>> arr[1:-1] # all but the first and last element
array([1, 2, 3])
但是