1

我对这个非常简单的代码有一个奇怪的行为

import numpy as np
[y, binEdges] = np.histogram(x, xout)

其中 x 和 xout 是 numpy 数组(xout 描述了等距的 bin 的边缘)。

如果我做

np.sum(y)

该值不等于 x (x.shape) 中的元素数,该值比 x.shape 小很多,我不知道为什么。它是 np.histogram 的错误吗?如果需要,我可以上传 x 和 xout numpy 数组,但它们很长(x.shape 是 19133 float64,xout.shape 是 1360 float64)。如果我在上面的代码中做错了什么,请告诉我。

4

2 回答 2

1

使用它来xout正确计算,n是 bin 的数量。

xout = np.linspace(floor(x.min()), ceil(x.max(), n)

然后调用直方图函数:

[y, binEdges] = histogram(x, xout)
于 2013-07-09T20:37:40.827 回答
1

尝试这个:

y.sum() + (x < xout[0]).sum() + (x > xout[-1]).sum()
于 2013-07-09T20:11:14.967 回答