如何根据另一NumPy数组的元素筛选并求和目标数组元素?
用NumPy实现对应位置元素筛选求和
直接利用NumPy的布尔索引就能简便实现这个需求,代码示例如下:
import numpy as np arr1 = np.array([10, 20, 15, 0, 45, 100]) arr2 = np.array([0, 3, 1, 6, 0, 0]) # 筛选arr1中对应arr2元素为0的项并求和 total = arr1[arr2 == 0].sum() print(total) # 输出结果:155
原理说明
arr2 == 0会生成一个布尔数组[True, False, False, False, True, True],精准标记出arr2中元素为0的位置- 用该布尔数组作为索引提取arr1的元素,直接得到目标子集
[10, 45, 100] - 调用
sum()方法即可快速计算子集的和
内容的提问来源于stack exchange,提问作者monok
相关产品推荐
相关产品推荐

