我的数据如下:
x: 0, 1, 2, 3, 4,...
y: 1, 3, 1, 4, 2,...
其中y是x中每个元素的频率列表。
首先,我想将数据显示如下:
data: 0, 1, 1, 1, 2, 3, 3, 3, 3, 4, 4,...
我想提取这些值的均值和中位数。所以平均值应该是2.27,中位数应该是3.
我想知道最好的方法是什么,是否要创建一个包含x和y值的字典或其他内容。
提前致谢。
答案 0 :(得分:3)
这些pred subset( disj a, b : set univ ) { b in a }
元素看起来是data
中相应元素重复的x
值。因此,我们可以使用np.repeat
-
y
然后,只需使用data = np.repeat(x,y)
:mean
和median
获取ufuncs
和np.mean(data)
值。
或者,获得np.median(data)
值的有效方法是在mean
和x
之间执行内积并除以y
- <的总和/ p>
y
示例运行 -
np.inner(x,y)/float(y.sum())