Как скопировать ряд значений с плавающей точкой в гистограмму в Python?

У меня есть значение в float (всегда меньше 0). Который я хочу включить в гистограмму, т.е. каждый столбец гистограммы содержит диапазон значений [0,0.150)

Данные, которые у меня есть, выглядят так:

0.000
0.005
0.124
0.000
0.004
0.000
0.111
0.112

С моим кодом ниже я ожидаю получить результат, который выглядит как

[0, 0.005) 5
[0.005, 0.011) 0
...etc.. 

Я пытался сделать такой биннинг с этим моим кодом. Но это неКажется, не работает. Какие'правильный способ сделать это? ~

#! /usr/bin/env python


import fileinput, math

log2 = math.log(2)

def getBin(x):
    return int(math.log(x+1)/log2)

diffCounts = [0] * 5

for line in fileinput.input():
    words = line.split()
    diff = float(words[0]) * 1000;

    diffCounts[ str(getBin(diff)) ] += 1

maxdiff = [i for i, c in enumerate(diffCounts) if c > 0][-1]
print maxdiff
maxBin = max(maxdiff)


for i in range(maxBin+1):
     lo = 2**i - 1
     hi = 2**(i+1) - 1
     binStr = '[' + str(lo) + ',' + str(hi) + ')'
     print binStr + '\t' + '\t'.join(map(str, (diffCounts[i])))

Ответы на вопрос(3)

Ваш ответ на вопрос