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

Python绘制连续数据直方图后如何获取各数据点对应的概率列表

你可以用numpy.digitize()方法定位每个数据点所属的bin索引,再通过索引映射到对应的bin_probability值即可,完整实现代码如下:

import numpy as np

Data = [4.33, 4.11, 6.33, 5.67, 3.24, 6.74, 24.6, 6.43, 4.122, 9.67, 9.99, 3.44, 5.66, 3.54, 5.34, 6.55, 5.78, 3.56, 1.55, 5.45]

n, bin_edges = np.histogram(Data, bins = 10)
totalcount = np.sum(n)
bin_probability = n / totalcount

# 定位每个数据点对应的bin索引
bin_indices = np.digitize(Data, bin_edges)
# 修正索引,避免边界值索引越界
bin_indices = np.clip(bin_indices - 1, 0, len(bin_probability) - 1)
# 映射得到每个点对应的概率
point_probabilities = bin_probability[bin_indices]

print(point_probabilities)

说明:

  • np.digitize返回的区间规则和np.histogram默认规则完全匹配,除最大值外所有区间均为左闭右开
  • np.clip用于修正最大值的索引,避免落在最后一个bin的数值出现索引越界问题
  • 最终输出的point_probabilities就是长度为20的概率列表,每个值和原Data列表的数据点一一对应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 00:48:03