На самом деле это документально поведение 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()
принадлежит к первому ящику, а array.max()
лежит за пределами последнего бункера - поэтому 0
не находится на выходе, а 17 -.
Хм, я знаю о поведение граничного оцифровки(). Однако, поскольку я использую гистограмму() для создания бункеров, не все ли значения лежат внутри бункеров? – sandesh247 2010-12-04 23:18:23