python: использование numpy.histogram - PullRequest
3 голосов
/ 03 августа 2010

Я использую это:

http://docs.scipy.org/doc/numpy/reference/generated/numpy.histogram.html

У меня есть список a, который я хочу использовать следующим образом:

numpy.histogram(a,bins=[0.1,0.2,0.3,0.4...6], range=[0:6])
  1. как включить набор корзин от 0,1 до 6 с интервалом 0,1?
  2. как указать диапазон от 0 до 6?

Ответы [ 2 ]

5 голосов
/ 03 августа 2010

Возможно, вы ищете np.linspace(0,6,num=61) или np.arange(0,6.1,0.1):

import numpy as np
a=np.random.random(100)*6
hist=np.histogram(a,bins=np.linspace(0,6,num=61))
2 голосов
/ 03 августа 2010
  1. Если вы в порядке с числами с плавающей запятой, вы можете сделать: [x/10.0 for x in range(61)] дает вам (средние элементы опущены) [0.0, 0.10000000000000001, 0.20000000000000001, ... 5.7000000000000002, 5.7999999999999998, 5.9000000000000004, 6.0]

    В противном случае см. Модуль decimal.

  2. range(7)

Вот пример: pop содержит 1000 случайных чисел из последовательности 0, 0,01, 0,02, ..., 5.99, 6. Контейнеры соответствуют указанным вами.Вы можете добавить диапазон или нет - в любом случае, конечные точки в этом случае просты.

>>> import numpy
>>> import random
>>> pop = []
>>> for i in range(1000):
...     pop.extend([random.choice(range(600))/100.0])
... 
>>> bins = [x/10.0 for x in range(61)]
>>> hist, bin_edges = numpy.histogram(pop, bins)
>>> bin_edges
array([ 0. ,  0.1,  0.2,  0.3,  0.4,  0.5,  0.6,  0.7,  0.8,  0.9,  1. ,
        1.1,  1.2,  1.3,  1.4,  1.5,  1.6,  1.7,  1.8,  1.9,  2. ,  2.1,
        2.2,  2.3,  2.4,  2.5,  2.6,  2.7,  2.8,  2.9,  3. ,  3.1,  3.2,
        3.3,  3.4,  3.5,  3.6,  3.7,  3.8,  3.9,  4. ,  4.1,  4.2,  4.3,
        4.4,  4.5,  4.6,  4.7,  4.8,  4.9,  5. ,  5.1,  5.2,  5.3,  5.4,
        5.5,  5.6,  5.7,  5.8,  5.9,  6. ])
>>> hist
array([20, 11, 22, 17, 25, 11, 15, 15, 13, 18, 21, 21, 16, 13, 12, 18, 16,
       19, 11, 14, 15, 20, 20,  9, 13, 16, 20, 19, 23, 11, 19, 12, 21, 15,
       16, 24, 24, 16, 19, 18, 10, 14, 29, 11, 16, 15, 14, 19, 11, 15, 16,
       12, 17, 18, 12, 14, 27, 12, 21, 19])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...