从 numpy 直方图中获取等长数组或绘制不均匀数组

Getting an arrays of equal length from numpy histogram or plotting the uneven array

这可能是个简单的问题,但我想不出来。

假设我有这样的数据集:

180.0
170.9
-180.0
0.00
50.0
...

我一直在使用 numpy.histogram 函数,以便使用

获得 -180 到 180 范围内的概率值
probs, ang = np.histogram(angles, bins=360, range=(-180,180))

但是 returns 一个 hist 数组和 bin_edges 数组长度不等

Returns:

hist : array

The values of the histogram. See normed and weights for a description of the possible semantics.

bin_edges : array of dtype float

Return the bin edges (length(hist)+1).

如何获得我的数据集的概率,其中我的范围内的每个数字(-180 到 180,包括零)都有与之相关的概率,例如:

range prob
-180  0.70
-170  0.01
-160  0.01

我需要与范围匹配的概率

我是这样用matlab做的

[probas, angles] = hist(x, -180:10:180, 1.0);

这看起来很相似但行不通。

垃圾箱已经等距了。

要从直方图中获取概率,您必须归一化(即除以所有直方图值的总和):

probs = probs / np.sum(probs)