gpt4 book ai didi

python - 如何为 binned_statistic 创建用户定义的函数

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

我正在使用 scipy stats 包来获取沿 an 轴的统计信息,但我无法使用 binned_statistic 获取百分位数统计信息。我概括了下面的代码,我在其中尝试使用一系列 x bin 中的 x、y 值获取数据集的第 10 个百分位数,但它失败了。

我当然可以使用 np.std 做函数选项,比如中位数,甚至是 numpy 标准差。但是,我不知道如何使用 np.percentile,因为它需要 2 个参数(例如 np.percentile(y, 10)),但它给了我一个 ValueError: 不理解统计信息 错误。

import numpy as np
import scipy.stats as scist

y_median = scist.binned_statistic(x,y,statistic='median',bins=20,range=[(0,5)])[0]

y_std = scist.binned_statistic(x,y,statistic=np.std,bins=20,range=[(0,5)])[0]

y_10 = scist.binned_statistic(x,y,statistic=np.percentile(10),bins=20,range=[(0,5)])[0]

print y_median
print y_std
print y_10

我很茫然,甚至玩过这样的用户定义函数,但没有运气:

def percentile10():
return(np.percentile(y,10))

非常感谢任何帮助。

谢谢。

最佳答案

您定义的函数的问题在于它根本不接受任何参数!它需要采用与您的示例相对应的 y 参数,如下所示:

def percentile10(y):
return(np.percentile(y,10))

为了简洁起见,您还可以使用 lambda 函数:

scist.binned_statistic(x, y, statistic=lambda y: np.percentile(y, 10), bins=20,
range=[(0, 5)])[0]

关于python - 如何为 binned_statistic 创建用户定义的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32159869/

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