我有一些离散的数据值,它们一起形成某种分布。这是其中之一,但它们不同,峰值位于所有可能的位置,从 0 到结束。
所以,我想在 Python 中使用它的分位数(百分位数)。我想我可以编写某种函数,它将所有值从零开始,直到达到所需的百分比。但可能有更好的解决方案?例如,要在 SciPy 中创建某种经验分布,然后使用 SciPy 计算百分位数的方法?
最后,我需要左百分位数和右百分位数的 x 坐标。可以使用 20% 和 80% 的百分位数作为示例,稍后我将不得不为我的案例找到最佳数字。
先感谢您!
编辑: 几乎我想要的一些示例代码。
import numpy as np
np.random.seed(0)
distribution = np.random.normal(0, 1, 1000)
left, right = np.percentile(distribution, [20, 80])
print left, right
这会返回百分位数,我需要以某种方式获取它们的 x 坐标。对于正态分布,显然这是可能的,但我有一个未知形状的分布,所以如果百分位数不等于其中一个值(显然这是最常见的事情),它会变得更加复杂。