Função Python NumPy numpy.histogram()
- 
          
            Sintaxe de numpy.histogram()
- 
          
            Códigos de exemplo: numpy.histogram()
- 
          
            Códigos de exemplo: numpy.histogram()para especificar o número e tamanho de caixas
- 
          
            Códigos de exemplo: numpy.histogram()para usar o parâmetrodensity
- 
          
            Códigos de exemplo: numpy.histogram()para Plotar o Histograma
 
A função Python NumPy numpy.histogram() gera os valores de um histograma. Não traça um histograma mas calcula os seus valores. Passamos um array como parâmetro. Esta função calcula o seu histograma e devolve um array que armazenou os valores de um histograma. Podemos dizer que retorna a representação numérica de um histograma.
Sintaxe de numpy.histogram()
numpy.histogram(a, bins=10, range=None, normed=None, weights=None, density=None)
Parâmetros
| a | É uma estrutura array_like. Representa os dados de entrada para calcular o histograma. | 
| bins | É um número inteiro, um string, ou uma sequência de escalares. Representa o número de bins. Umbinsé como um intervalo, por exemplo, 0-5, 6-10, etc. Se as caixas são um número inteiro, então representa o número debinsigualmente espaçadas. Se for uma string, então representa o método para calcular o espaço do caixote do lixo. Se for uma sequência, então representa os contentores com larguras diferentes. | 
| range | É o intervalo dado num número de ponto flutuante. Representa a gama superior e a gama inferior das “caixas”. Se o intervalo não é dado então [a.min(), a.max()]é o intervalo. | 
| normed | É um parâmetro booleano. A sua função é como o parâmetro density, mas se as caixas não estiverem igualmente espaçadas, gera resultados incorrectos. | 
| weights | É uma estrutura array_like. O seu tamanho é o mesmo quea. Se adensityforTrue, então os pesos são normalizados. | 
| density | É um parâmetro booleano. Se o seu valor for True, então calcula a probabilidade em vez de calcular a frequência. | 
Devolver
Devolve duas arrays: hist e bin_edges. A matriz hist mostra os valores do histograma e a matriz bin_edges mostra as bordas do caixote do lixo. O tamanho de bin_edges é sempre 1 + (tamanho de hist) i.e. length(hist)+1.
Códigos de exemplo: numpy.histogram()
O parâmetro a é um parâmetro obrigatório. Se executarmos esta função sem passarmos o número de caixas, então ele irá calcular dez caixas com espaços desiguais.
import numpy as np
a = np.array(
    [89, 34, 56, 87, 90, 23, 45, 12, 65, 78, 9, 34, 12, 11, 2, 65, 78, 82, 28, 78]
)
histogram = np.histogram(a)
print(histogram)
Resultado:
(
    array([2, 3, 2, 2, 1, 0, 1, 2, 3, 4], dtype=int64),
    array([2.0, 10.8, 19.6, 28.4, 37.2, 46.0, 54.8, 63.6, 72.4, 81.2, 90.0]),
)
Códigos de exemplo: numpy.histogram() para especificar o número e tamanho de caixas
Especificaremos primeiro o número de contentores.
import numpy as np
a = np.array(
    [89, 34, 56, 87, 90, 23, 45, 12, 65, 78, 9, 34, 12, 11, 2, 65, 78, 82, 28, 78]
)
histogram = np.histogram(a, bins=2)
print(histogram)
Resultado:
(array([10, 10], dtype=int64), array([ 2., 46., 90.]))
O código acima calculou um histograma que tem 2 caixas. Os contentores são [2., 46.) e [46., 90.).
Agora, vamos especificar a borda das caixas.
import numpy as np
a = np.array(
    [89, 34, 56, 87, 90, 23, 45, 12, 65, 78, 9, 34, 12, 11, 2, 65, 78, 82, 28, 78]
)
histogram = np.histogram(a, bins=[0, 30, 60, 90])
print(histogram)
Resultado:
(array([7, 4, 9]), array([0, 30, 60, 90]))
Códigos de exemplo: numpy.histogram() para usar o parâmetro density
import numpy as np
a = np.array(
    [89, 34, 56, 87, 90, 23, 45, 12, 65, 78, 9, 34, 12, 11, 2, 65, 78, 82, 28, 78]
)
histogram = np.histogram(a, bins=5, density=True)
print(histogram)
Resultado:
(array([ 0.01420455,  0.01136364,  0.00284091,  0.00852273,  0.01988636]), 
 array([  2. ,  19.6,  37.2,  54.8,  72.4,  90. ]))
Note-se que em vez de calcular os valores do histograma, a função gera a probabilidade.
Códigos de exemplo: numpy.histogram() para Plotar o Histograma
Podemos traçar o histograma utilizando pyplot.
from matplotlib import pyplot as plt
import numpy as np
a = np.array(
    [89, 34, 56, 87, 90, 23, 45, 12, 65, 78, 9, 34, 12, 11, 2, 65, 78, 82, 28, 78]
)
plt.hist(a, bins=[0, 20, 40, 60, 80, 100])
plt.title("histogram")
plt.show()
Resultado:
