2

データが周期的な空間に存在するが、1 つのビンが境界と交差するヒストグラムを作成したいと考えています。つまり、左端と右端のビンは同じでなければなりません。

たとえば、 から0までの範囲の角度データがあり、 、、、およびビン360を作成したい場合、ビンにはからおよびからまでのデータを含める必要があります。のようなことはできません。NSEWN045 315360np.histogram(data, bins=[315,45,135,225,315])bins must increase monotonically

もちろん、データを「ローテーション」することでデータを前処理することもできますdata[data>bins.max()] -= 360が、それは一種のハックのようで、よりクリーンな方法があるかどうか疑問に思っていました。

4

2 に答える 2

2

使用できますnp.digitize

>>> a=np.random.randint(0,360,5000)
>>> ind=np.digitize(a,[45,135,225,315,360])
>>> np.bincount(ind)
array([ 616, 1246, 1268, 1249,  621])
# 0-45, 45-135, 135-225, 225-315, 315-360

>>> bins=np.bincount(ind)
>>> count=bins[:-1]
>>> count[0]+=bins[-1]
>>> count
array([1237, 1246, 1268, 1249])

まだ一種のハック。

于 2013-08-24T23:10:34.700 に答える