Python NumPy numpy.histogram() Función
-
Sintaxis de
numpy.histograma()
-
Códigos de ejemplo:
numpy.histogram()
-
Códigos de ejemplo:
numpy.histogram()
para especificar el número y el tamaño de los bins -
Códigos de ejemplo:
numpy.histogram()
para usar el parámetro dedensity
-
Códigos de ejemplo:
numpy.histogram()
para trazar el histograma
La función Python NumPy numpy.histogram()
genera los valores de un histograma. No traza un histograma pero calcula sus valores. Pasamos un array como parámetro. Esta función calcula su histograma y devuelve un array que ha almacenado los valores del histograma. Podemos decir que devuelve la representación numérica de un histograma.
Sintaxis de numpy.histograma()
numpy.histogram(a, bins=10, range=None, normed=None, weights=None, density=None)
Parámetros
a |
Es una estructura tipo “matriz”. Representa los datos de entrada para calcular el histograma. |
bins |
Es un entero, una cuerda o una secuencia de escalares. Representa el número de bin . Un bin es como un rango, por ejemplo, 0-5, 6-10, etc. Si bins es un número entero, entonces representa el número de bins igualmente espaciados. Si es una cadena, entonces representa el método para calcular el espacio de los bins. Si es una secuencia entonces representa los bins con diferentes anchos. |
range |
Es el rango dado en un número de punto flotante. Representa el rango superior e inferior de las “cajas”. Si no se da el rango, entonces [a.min(), a.max()] es el rango. |
normed |
Es un parámetro booleano. Su función es como el parámetro density pero si los contenedores no están espaciados por igual genera resultados incorrectos. |
weights |
Es una estructura de tipo array_like . Su tamaño es el mismo que el de a . Si la density es True , entonces los pesos se normalizan. |
density |
Es un parámetro booleano. Si su valor es True , entonces calcula la probabilidad en lugar de calcular la frecuencia. |
Retorna
Devuelve dos matrices: hist
y bin_edges
. La matriz hist
muestra los valores del histograma y bin_edges
muestra los bordes de la caja. El tamaño de bin_edges
es siempre 1 + (tamaño de hist
), es decir, length(hist) +1
.
Códigos de ejemplo: numpy.histogram()
El parámetro a
es un parámetro obligatorio. Si ejecutamos esta función sin pasar el número de bines, entonces calculará diez bines con espacios desiguales.
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)
Producción:
(
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 ejemplo: numpy.histogram()
para especificar el número y el tamaño de los bins
Primero especificaremos el número de contenedores.
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)
Producción:
(array([10, 10], dtype=int64), array([ 2., 46., 90.]))
El código anterior ha calculado un histograma que tiene 2 contenedores. Los bins son [2., 46.)
y [46., 90.)
.
Ahora, especificaremos el borde de los bins.
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)
Producción:
(array([7, 4, 9]), array([0, 30, 60, 90]))
Códigos de ejemplo: numpy.histogram()
para usar el parámetro de 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)
Producción:
(array([ 0.01420455, 0.01136364, 0.00284091, 0.00852273, 0.01988636]),
array([ 2. , 19.6, 37.2, 54.8, 72.4, 90. ]))
Obsérvese que en lugar de computar los valores del histograma, la función genera la probabilidad.
Códigos de ejemplo: numpy.histogram()
para trazar el histograma
Podemos trazar el histograma usando 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()
Producción: