Как я могу создать полную гистограмму с помощью numpy?
Вопрос
У меня очень длинный список в numpy.array
.Я хочу создать для него гистограмму.Тем не менее, Нампи встроенная гистограмма требует заранее определенного количества бункеров.Как лучше всего создать полную гистограмму с одним интервалом для каждого значения?
Решение
Если у вас есть массив целых чисел и максимальное значение не слишком велико, вы можете использовать numpy.bincount:
hist = dict((key,val) for key, val in enumerate(numpy.bincount(data)) if val)
Редактировать:Если у вас есть данные с плавающей запятой или данные распределены по огромному диапазону, вы можете преобразовать их в целые числа, выполнив:
bins = numpy.unique(data)
bincounts = numpy.bincount(numpy.digitize(data, bins) - 1)
hist = dict(zip(bins, bincounts))
Другие советы
Контейнер для каждого значения звучит немного странно, но не будет
bins=a.max()-a.min()
дать похожий результат?
Не связан с StackOverflow