中的值binnumbers
是一个未解开的垃圾箱索引,其中包括额外的
一组“超出范围”的垃圾箱。
在这个例子中,
In [40]: hst, edges, bincounts = binned_statistic_dd([np.ones(10), np.ones(10)], None, 'count', bins=3)
In [41]: hst
Out[41]:
array([[ 0., 0., 0.],
[ 0., 10., 0.],
[ 0., 0., 0.]])
垃圾箱编号如下:
0 | 1 | 2 | 3 | 4
-----+-----+-----+-----+-----
5 | 6 | 7 | 8 | 9
-----+-----+-----+-----+-----
10 | 11 | 12 | 13 | 14
-----+-----+-----+-----+-----
15 | 16 | 17 | 18 | 19
-----+-----+-----+-----+-----
20 | 21 | 22 | 23 | 24
“超出范围”的垃圾箱不包含在hst
;中的数据hst
对应于 bin 编号
6、7、8、11、12、13、16、17 和 18。这就是为什么 中的所有值bincounts
are 12:
In [42]: bincounts
Out[42]: array([12, 12, 12, 12, 12, 12, 12, 12, 12, 12])
您可以使用range
强制将计数放入外部垃圾箱的参数。例如,
通过将坐标的范围设置为[2, 3]和[0, 0.5],所以坐标中的所有值
第一个坐标位于其范围的左侧,第二个坐标中的所有值都是
在其范围的右侧,所有点最终都位于右上方的外部垃圾箱中,即
垃圾箱索引 4:
In [51]: binned_statistic_dd([np.ones(10), np.ones(10)], None, 'count', bins=3, range=[[2,3],[0,0.5]])
Out[51]:
(array([[ 0., 0., 0.],
[ 0., 0., 0.],
[ 0., 0., 0.]]),
[array([ 2. , 2.33333333, 2.66666667, 3. ]),
array([ 0. , 0.16666667, 0.33333333, 0.5 ])],
array([4, 4, 4, 4, 4, 4, 4, 4, 4, 4]))