Generadores de números aleatorios Scipy

Generadores de números aleatorios Scipy
Cuando escribe código en el idioma de Python, a menudo se encuentra con varias bibliotecas. Estas bibliotecas de Python hacen que la vida de los desarrolladores sea más fácil y simple. Usando estas bibliotecas, los desarrolladores pueden administrar fácilmente problemas prácticos complejos y optimizar largas líneas de código con una función. Scipy es una de esas increíbles bibliotecas de Python que ayuda a los desarrolladores con problemas estadísticos y científicos. En este artículo, vamos a discutir la función del generador de números aleatorios de la biblioteca Scipy. Como Scipy es una de las bibliotecas de Python más utilizadas para problemas científicos y matemáticos, discutiremos su función de generador de números aleatorios aquí en detalle.

¿Qué es un número aleatorio??

Un número aleatorio se produce al azar y no a través de la predicción lógica. Es como elegir cualquier número de una serie sin hacer ninguna lógica. El número se puede repetir ya que el número aleatorio no significa un número único. Los generadores de números aleatorios en el programa Python siguen la misma lógica para generar un número aleatorio. La función puede elegir cualquier número de una serie específica sin hacer ninguna lógica y el número se puede repetir varias veces. Es como un juego de ludo en el que rodas dados y espera cualquier número entre 1 y 6, a medida que avanzamos, obtenemos el mismo número muchas veces.

Generación de números aleatorios con biblioteca Scipy

La Biblioteca Scipy en Python Programming ofrece una interfaz única para una variedad de generadores de números aleatorios universales no uniformes. El objeto randint de la biblioteca Scipy hereda la colección de métodos genéricos de la biblioteca y realiza varias funciones de distribución aleatoria. Aquí, explicaremos cómo puede realizar una distribución aleatoria con el método de generador de números aleatorios Scipy.

Ejemplo 1:

Explore el primer ejemplo y aprendamos cómo usar el generador de números aleatorios de la biblioteca Scipy en nuestro programa. En el fragmento de código a continuación, puede encontrar las pocas líneas de código que trazarán un gráfico y mostrarán la aleatoriedad en la distribución.

importar numpy como np
De Scipy.estadísticas import randint
Importar matplotlib.Pyplot como PLT
F, G = PLT.subtramas (1, 1)
Iniciar, final = 6, 20
x = NP.Arange (Randint.ppf (0, inicio, final),
randint.PPF (1, inicio, final))
gramo.trama (x, randint.PMF (x, inicio, final), 'bo', ms = 10)
gramo.Vlines (x, 0, randint.PMF (x, inicio, final))
rv = randint (inicio, final)
gramo.Vlines (x, 0, RV.PMF (x))
PLT.espectáculo()

El programa comenzó con la importación de la biblioteca Numpy como NP. Después de eso, el Scipy.El paquete de estadísticas se incluye en el programa para importar la función Randint. Para trazar el gráfico, el matplotlib.El paquete Pyplot se incluye como PLT en el programa. Ahora que tenemos todas las bibliotecas esenciales para usar, demostremos el generador de números aleatorios Scipy, entonces podemos comenzar a escribir el programa principal.

Se declaran que dos variables comienzan y finales definen los puntos de inicio y finalización del rango de generador de números aleatorios. Una vez que tenemos eso, podemos mapear los números aleatorios en el eje X y el eje Y. Para el eje x, declaramos NP.Arange (Randint.PPF (0, Inicio, Fin), Randint.PPF (1, inicio, final)). Ahora, esta X se pasa a la función Plot () para dibujar el gráfico. Para dibujar las líneas del resultado del generador de números aleatorios, usamos G.Vlines (x, 0, randint.PMF (x, inicio, final)). Para la generación de valor aleatorio, usamos RV = randint (inicio, finalización). El rango de inicio y finalización se proporciona al principio, 6 y 20, por lo que el número se generará entre 6 y 20.

Si ha notado que usamos los métodos PMF y PPF, debe preguntarse ahora qué son. La función randint funciona con varios métodos, yo.mi., PMF, RVS, LOGSF, PPF, entropía, media, intervalo, mediana, ETS, esperanza, etc. En este programa, estamos utilizando los métodos PPF y PMF para demostrar la función Randint de la biblioteca Scipy. El PPF significa la función de porcentaje de puntos y se usa para encontrar los percentiles. El PMF significa la función de masa de probabilidad y se utiliza para calcular las probabilidades.

Ahora, mire la salida a continuación para comprender las líneas de código dadas anteriormente. Cuando ve el resultado, puede interpretar fácilmente cada línea de código en el gráfico. Vea el resultado dado en la captura de pantalla a continuación:

Ejemplo 2:

Dado que ya sabemos que se pueden usar muchos métodos con la función randint, exploremos uno más de ellos. Anteriormente, utilizamos el método PMF con PPF, en este ejemplo, demostraremos el funcionamiento de CDF con el método PPF.

importar numpy como np
De Scipy.estadísticas import randint
Importar matplotlib.Pyplot como PLT
F, G = PLT.subtramas (1, 1)
Iniciar, final = 6, 20
x = NP.Arange (Randint.ppf (0, inicio, final),
randint.PPF (1, inicio, final))
gramo.trama (x, randint.CDF (X, Start, End), 'Bo', MS = 10)
gramo.Vlines (x, 0, randint.CDF (x, inicio, final))
rv = randint (inicio, final)
gramo.Vlines (x, 0, RV.CDF (x))
PLT.espectáculo()

El código, como puede observar, es similar a lo que empleamos en el ejemplo anterior. Los datos, el inicio y el punto final, el rango, los métodos de trazado, todo es igual. Acabamos de reemplazar la función PMF con el método CDF. Esto se ha utilizado para mostrarle el funcionamiento de los diferentes métodos. El CDF significa la función de distribución acumulada y se utiliza para calcular la distribución acumulativa. Los datos no se han cambiado para que pueda ver la diferencia en el resultado de los métodos PMF y CDF. Vea la salida del método CDF de Randint a continuación:

Ejemplo 3:

Otro método que se puede usar con randint es logpmf. Entonces, en este programa, demostraremos el funcionamiento de logpmf. El resto del programa es el mismo, la única modificación es que la función CDF se reemplaza con logpmf.

importar numpy como np
De Scipy.estadísticas import randint
Importar matplotlib.Pyplot como PLT
F, G = PLT.subtramas (1, 1)
Iniciar, final = 6, 20
x = NP.Arange (Randint.ppf (0, inicio, final),
randint.PPF (1, inicio, final))
gramo.trama (x, randint.logpmf (x, inicio, final), 'bo', ms = 10)
gramo.Vlines (x, 0, randint.logpmf (x, inicio, final))
rv = randint (inicio, final)
gramo.Vlines (x, 0, RV.logpmf (x))
PLT.espectáculo()

El logPMF significa el registro de la función de masa de probabilidad. Es similar a la función PMF pero toma el registro del PMF. Explicamos la función PMF en el primer ejemplo, por lo que puede comparar la salida de ambos programas para ver la diferencia. Vea la salida en la captura de pantalla a continuación:

Conclusión

Este artículo ha sido diseñado para discutir el generador de números aleatorios Scipy. Aprendimos que la biblioteca Scipy tiene un paquete de estadísticas que proporciona la función Randint que se puede utilizar con varios métodos como PPF, PMF, CDF, MEDI, LOGPMF, MEDIAN, etc. Exploramos algunos ejemplos simples y útiles para aprender a realizar una generación de números aleatorios usando la biblioteca Scipy de Python. Estos ejemplos simples son muy útiles para comprender cómo funciona la función randint para la generación de números aleatorios.