如何从NumPy数组中获取所有值(不包括特定索引)?

我有一个NumPy数组,我想检索除某个索引以外的所有元素。例如,考虑以下数组

a = [0,1,2,3,4,5,5,6,7,8,9]

如果我指定索引3,则结果应为

a = [0,1,2,4,5,5,6,7,8,9]

回答:

像调整大小一样,从NumPy数组中删除元素是一个缓慢的操作(特别是对于大型数组,因为它需要分配空间并将所有数据从原始数组复制到新数组)。如果可能,应避免使用。

通常,您可以通过使用蒙版数组来避免这种情况。例如,考虑数组a

import numpy as np

a = np.array([0,1,2,3,4,5,5,6,7,8,9])

print(a)

print(a.sum())

# [0 1 2 3 4 5 5 6 7 8 9]

# 50

我们可以在索引3处屏蔽它的值,并且可以执行 忽略屏蔽元素 的求和:

a = np.ma.array(a, mask=False)

a.mask[3] = True

print(a)

print(a.sum())

# [0 1 2 -- 4 5 5 6 7 8 9]

# 47

蒙面阵列还支持许多操作之外sum

如果确实需要,也可以使用以下compressed方法删除被屏蔽的元素:

print(a.compressed())

# [0 1 2 4 5 5 6 7 8 9]

但是如上所述,请尽可能避免。

以上是 如何从NumPy数组中获取所有值(不包括特定索引)? 的全部内容, 来源链接: utcz.com/qa/416046.html

回到顶部