如何使用numpy计算数组中满足指定条件的元素占比
Numpy 数组满足指定条件元素占比计算方法
核心逻辑
Numpy 支持数组级别的批量判断,对数组使用比较运算符会返回布尔数组,数组中符合条件的位置对应值为True,不符合为False。数值计算时True会被视为1,False视为0,基于这个特性可以快速统计符合条件的元素数量。
实现方式
方式1:分步统计(适配需要单独获取符合条件数量的场景)
- 第一步:执行条件判断得到布尔数组
- 第二步:对布尔数组执行
sum运算,得到符合条件的元素总数 - 第三步:用符合条件的元素总数除以数组总长度,得到占比
示例代码:
import numpy as np # 定义示例数组 arr = np.array([1,3,4,20,40,50,3,5]) # 统计大于20的元素数量 valid_num = np.sum(arr > 20) # 数组总元素数 total_num = np.size(arr) # 计算占比 ratio = valid_num / total_num print(ratio) # 输出结果为0.25
方式2:一步计算(更简洁)
直接对布尔数组执行mean运算,会自动计算True的占比,无需手动计算总长度:
import numpy as np arr = np.array([1,3,4,20,40,50,3,5]) ratio = np.mean(arr > 20) print(ratio) # 输出结果为0.25
补充说明:如果需要修改判断规则,只需要替换
arr > 20为对应的条件即可,比如arr >= 20(大于等于20)、arr < 5(小于5)、arr == 3(等于3)等规则都适用。
内容的提问来源于stack exchange,提问作者Nathan
相关产品推荐
相关产品推荐

