如何从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 npa = 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