У меня очень длинный список в numpy.array
. Я хочу создать для него гистограмму. Однако для Numpy built in histogram требуется определенное количество ячеек. Каков наилучший способ генерации полной гистограммы с одним бином для каждого значения?Как создать полную гистограмму с numpy?
2
A
ответ
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
Бункер для каждого значения звучит немного странно, но было бы не
bins=a.max()-a.min()
дать подобный результат?
спасибо. не знал о 'bincount()' –
np.bincount (np.digitize (...)) - такая полезная модель :) – David