Arp*_*Das 3 python statistics numpy scipy
我有一个数据集,这是一个numpy数组,说a = [a1,a2,.....],数据的权重w = [w1,w2,w3 ...].我使用numpy直方图包计算了直方图,它给出了hist数组.现在我想计算这个概率分布函数的中位数以及中位数周围的68%轮廓.记住我的数据集不是高斯数据.
有人可以帮忙吗?我正在使用python.
这里使用scipy.stats.rv_discrete的解决方案:
from __future__ import division, print_function
import numpy as np, scipy.stats as st
# example data set
a = np.arange(20)
w = a + 1
# create custom discrete random variable from data set
rv = st.rv_discrete(values=(a, w/w.sum()))
# scipy.stats.rv_discrete has methods for median, confidence interval, etc.
print("median:", rv.median())
print("68% CI:", rv.interval(0.68))
Run Code Online (Sandbox Code Playgroud)
输出反映示例数据集中的不均匀权重:
median: 13.0
68% CI: (7.0, 18.0)
Run Code Online (Sandbox Code Playgroud)