You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

scipy.stats.cumfreq不符合需求,求正确计算累积频率的Python方法

正确计算离散分类数据的累积频率方法

针对你用Python计算各行业就业数据累积频率的需求,scipy.stats.cumfreq不适用的原因是它面向连续数据的分箱累积频数计算,而你的场景是离散行业分类数据,直接基于累积劳动力与总劳动力的比值计算即可,步骤如下:

核心思路

  1. 用np.cumsum计算累积劳动力(你已验证这一步符合书本要求)
  2. 计算所有行业的总劳动力
  3. 将累积劳动力数组除以总劳动力,得到对应累积频率

代码示例

import numpy as np

# 替换为你的各行业劳动力原始数据
industry_labors = np.array([37789.24, 62907.93, 125004.66, 114918.4, 659380.77])

# 累积劳动力(已验证正确)
cum_labor = np.cumsum(industry_labors)

# 总劳动力
total_labor = np.sum(industry_labors)

# 计算累积频率
cum_frequency = cum_labor / total_labor

print(cum_frequency)
# 输出结果与预期完全一致:[0.03778924 0.10069717 0.22570183 0.34062023 1.        ]

为什么scipy.stats.cumfreq不符合预期?

scipy.stats.cumfreq的设计目标是处理连续数值数据,它会先对数据进行分箱(默认或指定分箱数),再计算每个区间的累积频数/频率,这和你需要的按行业类别直接累积求和的逻辑完全不同,因此不适合你的离散分类场景。

内容的提问来源于stack exchange,提问作者Marc Le Bihan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 08:06:20