Как я могу создать полную гистограмму с помощью numpy?

StackOverflow https://stackoverflow.com/questions/1420235

  •  07-07-2019
  •  | 
  •  

Вопрос

У меня очень длинный список в 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()

дать похожий результат?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top