Distribución uniforme en NumPy

La distribución uniforme en NumPy se puede generar utilizando la función numpy.random.uniform(). Esta distribución se caracteriza por tener todos los valores posibles con la misma probabilidad en un rango específico. Aquí te proporciono una lección detallada con ejemplos de cómo trabajar con la distribución uniforme en NumPy y cómo visualizarla.


Importar NumPy

Antes de comenzar, asegúrate de tener NumPy instalado y, a continuación, importa la librería:

import numpy as np

Generar Datos con Distribución Uniforme en NumPy

Para generar datos con distribución uniforme, puedes utilizar la función numpy.random.uniform(). Esta función toma como argumentos el valor mínimo (low), el valor máximo (high), y el número de muestras que deseas generar (size).

# Generar 1000 números aleatorios uniformemente distribuidos entre 0 y 1
      uniform_data = np.random.uniform(low=0, high=1, size=1000)

Visualizar la Distribución Uniforme

Puedes visualizar la distribución uniforme utilizando bibliotecas de visualización como Matplotlib. A continuación, se muestra un ejemplo de cómo crear un histograma para visualizar los datos generados:

import matplotlib.pyplot as plt

      # Crear un histograma
      plt.hist(uniform_data, bins=20, density=True, alpha=0.6, color='g')
      plt.xlabel('Valores')
      plt.ylabel('Frecuencia')
      plt.title('Distribución Uniforme')
      plt.grid(True)
      plt.show()

En este ejemplo, plt.hist() crea un histograma de los datos generados. bins controla la cantidad de divisiones en el histograma. density=True normaliza el histograma para que la suma de las áreas sea igual a 1, lo que lo convierte en una función de densidad de probabilidad.


Generar Datos en un Rango Personalizado

En este ejemplo, generaremos una muestra de 500 números aleatorios uniformemente distribuidos en el rango [-2, 2].

import numpy as np
      import matplotlib.pyplot as plt

      # Generar 500 números aleatorios uniformemente distribuidos entre -2 y 2
      uniform_data_custom_range = np.random.uniform(low=-2, high=2, size=500)

      # Crear un histograma
      plt.hist(uniform_data_custom_range, bins=20, density=True, alpha=0.6, color='b')
      plt.xlabel('Valores')
      plt.ylabel('Frecuencia')
      plt.title('Distribución Uniforme en Rango Personalizado')
      plt.grid(True)
      plt.show()

Este código generará una distribución uniforme en el rango [-2, 2] y visualizará los datos en un histograma.


Generar Matriz de Datos Uniformemente Distribuidos

También puedes generar matrices de datos uniformemente distribuidos en un rango específico. Aquí hay un ejemplo que crea una matriz de 3×3 de números aleatorios uniformemente distribuidos en el rango [0, 10]:

import numpy as np

      # Generar una matriz de 3x3 de números aleatorios uniformemente distribuidos entre 0 y 10
      matrix_uniform = np.random.uniform(low=0, high=10, size=(3, 3))

      print(matrix_uniform)

Este código generará una matriz de 3×3 con valores uniformemente distribuidos entre 0 y 10.


La distribución uniforme en NumPy es útil cuando necesitas generar datos que tengan igual probabilidad de aparecer en un rango específico. Puedes ajustar el rango y la cantidad de datos según tus necesidades. Además, la visualización de la distribución mediante histogramas te ayuda a comprender mejor la uniformidad de los datos generados.