Это фактически задокументированное поведение numpy.digitize()
:
Каждый возвращаемый индекс i
таков, что bins[i-1] <= x < bins[i]
, если bins
монотонно увеличивается, или bins[i-1] > x >= bins[i]
, если bins
монотонно уменьшается.Если значения в x
выходят за пределы bins
, 0
или len(bins)
возвращается в зависимости от ситуации.
Так что в вашем случае 0
и 17
такжедопустимые возвращаемые значения (обратите внимание, что массив bin, возвращаемый numpy.histogram()
, имеет длину 17
).Контейнеры, возвращаемые numpy.histogram()
, охватывают диапазон от array.min()
до array.max()
.Условие, данное в документации, показывает, что array.min()
относится к первому бин-коду, а array.max()
лежит вне последнего бина - поэтому 0
не выводится, а 17 - *. 1027 *