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

如何对1024×1024的0~1值数组分箱计数计算数据集PDF

Numpy分箱计数长度不匹配问题解决
  • 问题根源
    1. 你手动定义的bins数组对应的分箱数为len(bins)-1=21,和你手动设置的num_bins=22本身就不匹配
    2. 调用np.histogram时同时传入bins数组和range参数,当bins为自定义数组时range参数会被自动忽略,多余传入反而会导致逻辑混乱

你需要的是中心从0到1、步长0.05的21个分箱,对应边缘范围为[-0.025, 1.025],修正后的实现代码如下:

import numpy as np

# 生成分箱边缘,加1e-8避免浮点精度截断导致漏掉最后一个边缘值
bin_edges = np.arange(-0.025, 1.025 + 1e-8, 0.05)
bin_width = bin_edges[1] - bin_edges[0]

# 统计分箱计数,无需传入range参数,自定义bins优先级更高
counts, _ = np.histogram(Flux, bins=bin_edges, density=False)

# 归一化得到PDF,保证积分结果为1
Delta_F = 0.05
PDF = counts / (np.sum(counts) * Delta_F)

补充说明:如果你想用for循环实现计数,只要判断逻辑为bin_edges[i] <= 元素值 < bin_edges[i+1](最后一个分箱允许等于上边缘),逻辑就是正确的,但对于1024×1024规模的数组,numpy内置的histogram执行效率远高于纯Python循环,更推荐使用。

内容的提问来源于stack exchange,提问作者Zeta scientist

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:24:04