2009-09-14 6 views
2

У меня очень длинный список в numpy.array. Я хочу создать для него гистограмму. Однако для Numpy built in histogram требуется определенное количество ячеек. Каков наилучший способ генерации полной гистограммы с одним бином для каждого значения?Как создать полную гистограмму с numpy?

ответ

8

Если у вас есть массив целых чисел и значение макс не слишком велик, то можно использовать numpy.bincount:

hist = dict((key,val) for key, val in enumerate(numpy.bincount(data)) if val) 

Edit: Если у вас есть данные с плавающей точкой, или распространение данных по сравнению с огромным диапазоном вы можете преобразовать его в целые числа:

bins = numpy.unique(data) 
bincounts = numpy.bincount(numpy.digitize(data, bins) - 1) 
hist = dict(zip(bins, bincounts)) 
+0

спасибо. не знал о 'bincount()' –

+0

np.bincount (np.digitize (...)) - такая полезная модель :) – David

0

Бункер для каждого значения звучит немного странно, но было бы не

bins=a.max()-a.min() 

дать подобный результат?

 Смежные вопросы

  • Нет связанных вопросов^_^