【发布时间】:2017-06-26 00:49:08
【问题描述】:
我有 2 个数据数组,其中一个描述我要绘制的数据,第二个描述该数据的频率或权重。
我使用创建直方图
import numpy as np
import matplotlib.pyplot as plt
data = [7., 8.2, 9.6, 11.3, 13.2, 15.5, 18.1, 21.2, 24.9, 29.1, 34.1, 40.0]
freq = [2., 4.1, 4.5, 3.2, 2.7, 2.1, 1.3, 1., 0.9, 0., 0., 0.]
h = np.histogram(data, weights = freq, bins = data)
f = plt.hist(data, weights = freq, bins = data)
我现在想找到结果直方图的均值、标准差、偏度和峰度,但由于数据是“加权”或预先计算的,我似乎无法让 scipy.stats.describe 函数工作。有什么想法吗?
我应该说清楚,我已经尝试过 scipy.stats.describe 但似乎无法找到允许我做我想做的事情的重量参数。我真的不知道有什么工具可以帮助解决这个问题,而且谷歌搜索并没有返回很多有用的结果(尽管我承认我可能在搜索错误的东西)。
为了使事情变得更复杂,您的鹰眼会注意到数据均匀分布在日志空间中,而不是真实空间中。因此,如果您的方法涉及高斯拟合,您可能需要牢记这一点...
【问题讨论】:
-
“因此,如果您的方法涉及高斯拟合,您可能需要牢记这一点……” ... 我们正在评分吗?
-
我只是指出,如果有人想返回一种拟合数据的方法,那么数据在日志空间中是隔开的,这会影响拟合。无需刻薄。
-
通常预计提问者会在请求贡献之前提供他们尝试过的某种形式......不过我同意你的观点,刻薄永远不会帮助任何人!
-
对不起,我应该更清楚一点,我试图找到一种使用 scipy.stats.describe 工具的方法,却发现它缺少我需要指定数据的参数以正确的方式。也就是说,它的功能完全符合预期,我只是不想使用它应该如何使用它!我现在把它说得更清楚。
-
问题似乎是“如何从直方图中计算统计矩?”。在这种情况下,最好放在Cross Validated。
标签: python numpy matplotlib scipy statistics