san*_*247 4 python statistics numpy binning
我使用以下代码将数组数字化为16个bin:
numpy.digitize(array, bins=numpy.histogram(array, bins=16)[1])
Run Code Online (Sandbox Code Playgroud)
我希望输出在[1,16]范围内,因为有16个分档.但是,返回数组中的一个值是17.如何解释?
这实际上记录了以下行为numpy.digitize():
每个索引
i返回是这样的,bins[i-1] <= x < bins[i]如果bins是单调递增,或者bins[i-1] > x >= bins[i]如果bins是单调递减.如果值x超出范围bins,0或者len(bins)适当返回.
所以你的情况,0并且17也有效的返回值(请注意,返回的箱阵列numpy.histogram()具有的长度17).通过返回的箱numpy.histogram()覆盖范围array.min()到array.max().文档中给出的条件显示array.min()属于第一个bin,而array.max()位于最后一个bin之外 - 这就是为什么0不在输出中,而17是.