如何添加性别列并使用Numpy统计数据集中的男女人数?
使用Numpy统计性别人数的解决方案
核心实现代码
假设你的性别字段已转换为Numpy数组(比如从DataFrame提取的 gender = df['性别'].values),直接用Numpy的向量化操作就能高效完成统计:
import numpy as np # 统计男性('M')人数 male_total = np.sum(gender == 'M') # 统计女性人数(假设女性标识为'F',若实际标识不同替换成对应值即可) female_total = np.sum(gender == 'F') print(f"男性总人数:{male_total}") print(f"女性总人数:{female_total}")
对原有代码的优化说明
你之前用循环收集符合条件的元素再统计的方式效率较低,尤其数据集较大时更明显。Numpy的向量化运算会直接对整个数组做条件判断,返回布尔数组(True对应1,False对应0),np.sum()直接求和就能得到对应性别的总人数,简洁且高效。
扩展:统计所有性别类别(含其他取值)
如果数据中性别字段还有其他取值(比如空值、未知标识),可以用np.unique()一次性统计所有类别的数量:
gender_categories, category_counts = np.unique(gender, return_counts=True) for category, count in zip(gender_categories, category_counts): print(f"{category}的人数:{count}")
内容的提问来源于stack exchange,提问作者codingembryo
相关产品推荐
相关产品推荐

