如何使用scipy.stats.binned_statistic?

How do I use scipy.stats.binned_statistic?

提问人:Rafael Bittencourt 提问时间:11/17/2023 最后编辑:Rafael Bittencourt 更新时间:11/17/2023 访问量:20

问:

所以我有这个 csv 文件,其中有 16k 多一点的行,我想对它们进行 bin 平均,数据是温度和深度数据,所以我想制作深度 bins 0-10,而不是 10-20,依此类推,其中有温度均值。

我的想法是看到这样的东西:

深度 温度
5 20
10 23
15 27

我试过了这个:

'binned_data = scipy.stats.binned_statistic(data['温度'], data['压力'], statistic='平均值', bins=1636)

打印(binned_data)'

我得到的输出是这样的:

BinnedStatisticResult(statistic=array([ nan, nan, nan, ..., 20.48083333, 13.84529412, 14.27548387]), bin_edges=array([ 2.95 , 2.96304401, 2.97608802, ..., 24.26391198, 24.27695599, 24.29 ]), binnumber=array([1636, 1635, 1636, ..., 1542, 1543, 1543]))

我不知道我是否理解错了这个 scipy 函数,但是我怎么能按照我的预期看到每个具有相应温度平均值的箱子呢?

Python scipy 分箱

评论

0赞 pjs 11/17/2023
你有没有看过 docs.scipy.org/doc/scipy/reference/generated/ 底部的各种例子......?我总是建议你应该阅读《精美手册》。
0赞 Matt Haberland 11/17/2023
请编辑您的问题以解决以下问题:1)听起来您想按深度装箱,但您正在向 .2) 您说您希望以 10 为增量进行深度分箱,但随后您希望看到深度 5、10、15 等。 3) 输出中有 NaN,但您没有提到原始数据中有 NaN 或缺失值。有了可用的信息,我猜你需要颠倒传递温度和深度参数的顺序,你可能需要使用 np.nanmean 作为统计数据。binned_statistic
0赞 Rafael Bittencourt 11/18/2023
问题是,没有 NaN,深度来自压力,所以我只是使用压力编写了这段代码来发送问题
0赞 Nick ODell 11/18/2023
如果要自定义正在使用的 bin,可以使用 ,例如,使用 0 到 0.5 和 0.5 到 1 之间的两个 bin。bins=1636 将创建 1636 个等距的箱,这可能不是您想要的。bins=[0, 0.5, 1]

答: 暂无答案