两个列表的平均值和中位数

时间:2017-07-20 07:50:09

标签: python numpy dictionary

我的数据如下:

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值的字典或其他内容。

提前致谢。

1 个答案:

答案 0 :(得分:3)

这些pred subset( disj a, b : set univ ) { b in a } 元素看起来是data中相应元素重复的x值。因此,我们可以使用np.repeat -

y

然后,只需使用data = np.repeat(x,y) meanmedian获取ufuncsnp.mean(data)值。

或者,获得np.median(data)值的有效方法是在meanx之间执行内积并除以y - <的总和/ p>

y

示例运行 -

np.inner(x,y)/float(y.sum())