Skip to main content
 首页 » 编程设计

python之给定 scipy.stats.binned_statistic 函数......如何使用不同大小的垃圾箱

2025年05月04日22zhoujg

如果这个问题存在并得到澄清,我深表歉意(我已经搜索过,但最终还是找不到答案)。

所以,我有一个整数数组 a = [1,2,2,2,3,4],我想使用 bins = [0,1.5) 获取每个间隔的统计数据(在本例中为平均值) ; [1.5,2.5) ; [2.5,5]。

如您所见,没有相同长度的间隔。我试着这样做:

from scipy.stats import binned_statistic 
data = [1,2,2,2,3,4] 
bin_means = binned_statistic(data, data, bins=3, range=(0, 5)) 

在“bin_means”中存储以下内容:

BinnedStatisticResult(statistic=array([1.  , 2.25, 4.  ]), bin_edges=array([0.        , 1.66666667, 3.33333333, 5.        ]), binnumber=array([1, 2, 2, 2, 2, 3], dtype=int32)) 

我的理解是什么?垃圾箱是:[0,1.66..7) ; [1.66..7,3.33..) ; [3.33...,5) 不是我想要的间隔。
我不想要这些相同长度的间隔。有人可以解释一下我该怎么做吗? 另外有人可以解释一下 stats.binned_statics 的两个主要参数(“x”和“values”)吗?这会很有用。 提前致谢。

请您参考如下方法:

基本上,正如您在 documentation 中看到的那样, bins 可以是表示 bin 边缘的标量列表。

所以你可以使用:

bin_means = binned_statistic(data, data, bins=[0, 1.5, 2.5, 5], range=(0, 5)) 

关于 values 参数 - 它旨在允许您对数据进行分箱,但计算与每个数据点相关的另一个度量(或多个度量)的统计数据。 例如,您可以按高度对人进行分类,但使用这些分类计算他们体重的平均统计数据。