Я пытаюсь «поместить» массив в ячейки (аналогично гистограмме). У меня есть входной массив input_array
и диапазон bins = np.linspace(-200, 200, 200)
. Общая функция выглядит примерно так:
def bin(arr):
bins = np.linspace(-100, 100, 200)
return np.histogram(arr, bins=bins)[0]
Итак,
bin([64, 19, 120, 55, 56, 108, 16, 84, 120, 44, 104, 79, 116, 31, 44, 12, 35, 68])
вернется:
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0])
Однако я хочу, чтобы мои корзины были более «детализированы», когда я приблизился к 0 ... что-то похожее на нормальное распределение. В результате у меня может быть больше контейнеров (то есть, на коротких диапазонах), когда я близок к 0 и когда я двигаюсь к диапазону, лотки становятся больше. Возможно ли это?
Более конкретно, вместо того, чтобы иметь одинаково широкие ячейки в диапазоне, могу ли я иметь массив диапазонов, где ячейки по направлению к центру меньше, чем к крайним значениям?
Я уже посмотрел ответы типа this и numpy.random.normal , но что-то просто не нажимается вправо.