gpt4 book ai didi

python - 使用 scipy.stats.binned_statistic_2d 计算 2D 数据的多个统计数字

转载 作者:太空宇宙 更新时间:2023-11-03 15:21:37 26 4
gpt4 key购买 nike

我有一个关于函数 scipy.stats.binned_statistic_2d 的问题,如下:

我有二维数据 (x,y,f(x,y)),我想对 x-y 平面进行分箱并计算每个分箱的一些统计数据。为此,我使用了非常方便的函数 sbinned_statistic_2d。但假设我想计算每个 bin 的几个统计值 - 比如说平均值和中位数。因此我发现尝试这样的事情是很自然的

stats.binned_statistic_2d(data["x"], data["y"], data["f"], statistic = lambda x: [ np.mean(x), np.median(x) ], bins = bin_number )

但这不起作用,因为 binned_statistic_2d 需要一个仅返回标量而不是标量列表的统计函数。

当然,我可以调用 binned_statistic_2d 两次,但由于 bin_number 对我来说相当高,而且数据是一个巨大的数据帧,这需要很多时间。

那么,当我想使用此函数一次计算多个统计函数时,您知道我可以做什么来代替多次执行 binned_statistic_2d 吗?

为了玩玩,一个小的工作示例:

import pandas as pd
from scipy import stats

df = pd.DataFrame([ [i,j,i*j] for i in range(10) for j in range(10)], columns = ["x", "y", "f"])
# The following works
hist, _, _, _ = stats.binned_statistic_2d(df["x"], df["y"], df["f"], statistic = lambda x: np.mean(x) ,bins=4)
# The following doesn't work
hist, _, _, _ = stats.binned_statistic_2d(df["x"], df["y"], df["f"], statistic = lambda x: [ np.mean(x), np.median(x) ] ,bins=4)

提前致谢,于尔根

最佳答案

您想使用pandas.DataFrame.pivot_table 。您可以使用aggfunc指定要聚合的多个函数。

关于python - 使用 scipy.stats.binned_statistic_2d 计算 2D 数据的多个统计数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43489994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com