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

Ale*_*is 1 python statistics scipy

我很抱歉这个问题是否存在并得到澄清(我已经搜索过,最终找不到答案)。

因此,我有一个整数数组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))
Run Code Online (Sandbox Code Playgroud)

在“ 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))
Run Code Online (Sandbox Code Playgroud)

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

Sha*_*arA 5

基本上,正如您在文档中所看到的,bin可以是表示bin边缘的标量的列表。

因此,您可以使用:

bin_means = binned_statistic(data, data, bins=[0, 1.5, 2.5, 5], range=(0, 5))
Run Code Online (Sandbox Code Playgroud)

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