有什么办法可以删除python中numpy数组“就地”的特定元素:


问题内容

当调用“ np.delete()”时,我不希望为减小尺寸的数组定义一个新变量。我想对原始的numpy数组执行删除。任何想法?

>>> arr = np.array([[1,2], [5,6], [9,10]])
>>> arr
array([[ 1,  2],
       [ 5,  6],
       [ 9, 10]])
>>> np.delete(arr, 1, 0)
array([[ 1,  2],
       [ 9, 10]])
>>> arr
array([[ 1,  2],
       [ 5,  6],
       [ 9, 10]])
but I want:
>>> arr
array([[ 1,  2],
       [ 9, 10]])

问题答案:

NumPy数组是固定大小的,因此不能有的就地版本np.delete。任何此类函数都必须更改数组的大小。

您可以获得的最接近的结果是重新分配arr变量:

arr = numpy.delete(arr, 1, 0)