Если у вас есть массив целых чисел и максимальное значение не слишком велико, вы можете использовать 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))