Numpy直方图|使用一个维度匹配bin,另一个维度用于实际频率

时间:2015-05-25 06:48:03

标签: python numpy pandas histogram

我可以看到像

这样的东西
print np.histogram([1, 2, 1], bins=[0, 1, 2, 3])

会产生

(array([0, 2, 1]), array([0, 1, 2, 3]))

但我想不计算[1,2,1],而是计算与之相关的相应值。

例如,理想情况下我会想要这样的东西:

print np.histogram([(1,100), (2,150), (1,300)], bins=[0, 1, 2, 3])

产生

(array([0, 400, 150]), array([0, 1, 2, 3]))

但它产生的结果与原始结果相同。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用numpy.histogram' weights

从原始数据开始

orig = [(1,100), (2,150), (1,300)]

将它拆分为:

keys = [key for (key, _) in orig]
weights = [weight for (_, weight) in orig]

然后运行

import numpy as np

np.histogram(keys, bins=bins, weights=weights)