viernes, 29 de enero de 2021

7) Números aleatorios con Numpy














Números Aleatorios con Numpy.


Numpy nos proporciona una amplia gama de funciones para generar números aleatorios en matrices. Estas funciones están disponibles en el módulo numpy.random. Este módulo nos proporciona varias funciones para construir matrices aleatorias, entre las que se incluyen:

- random = Números aleatorios uniformes.

- normal = Los números aleatorios se agrupan formando una distribución normal.

- choice = Muestra aleatoria de una matriz dada.

Veamos algunos ejemplos.

>>> import numpy as np
>>> a = np.random.random((2,2))
>>> print(a)
[[0.01642991 0.53496398]
 [0.43409542 0.88082714]]

# Si queremos elegir 100 números entre el 0 y el 9
>>> b = np.random.choice(np.arange(10), 100)
>>> print(b)
[2 8 3 7 3 5 5 3 2 7 6 1 2 4 1 4 1 5 0 0 5 6 1 1 5 3 0 2 4 5 7 7 4 9 7 5 3
 7 3 9 1 9 4 4 6 6 9 5 6 2 1 2 6 9 6 0 7 5 0 3 1 0 1 1 6 5 9 9 2 3 1 4 1 1
 0 8 0 7 8 8 3 2 0 4 2 9 4 5 5 1 0 9 0 6 4 5 9 5 2 0]


Esto sería lo básico para construir arrrays con números aleatorios, si necesitas más información la puedes encontrar en el manual de numpy aquí.


PROBLEMA

Generaremos una matriz unidimensional de 1_000 números aleatorios distribuidos uniformemente para lo que utilizaremos el módulo numpy.random

Luego usaremos numpy.mean() y numpy.std() para obtener la media y la desviación estandar de dichos números.

Calcularemos la media y la desviación estándar de los datos.

Para terminar visualizaremos los datos en forma de distribución de frecuencias usando un histograma mediante la función plt.hist()


>>> import numpy as np
>>> import matplotlib.pyplot as plt

>>> #las funciones que se suelen utilizar para generar números aleatorios son:
>>> # random rand randint
>>> # normal, randn
>>> # choice
>>> # la diferencia entre random y rand es que el primero solo le puedes decir el tamaño
>>> # y al segundo el tamaño y la forma del array
>>> matriz=np.random.rand(1000)

>>> #creamos un histograma
>>> plt.hist(matriz)
>>> print(matriz)
>>> print('media = ', np.mean(matriz)) #media
>>> print('desviación standar = ', np.std(matriz)) #desviacion standar
>>> plt.show()

[0.32448446 0.17029493 0.88975758 0.58518918 0.03291183 0.75361128
 0.52061019 0.10227153 0.04804696 0.5571141  0.95852831 0.35740444
 0.74243456 0.9005181  0.02441245 0.55563885 0.01789706 0.78057959
 0.95879197 0.58012514 0.42234119 0.45749953 0.20109267 0.83788592
 0.74747628 0.40081211 0.32264574 0.18459283 0.85711583 0.40135899
 0.5850813  0.11131699 0.41030881 0.29485806 0.35575143 0.17555042
 0.07440257 0.27566318 0.74319726 0.59116089 0.8988699  0.88648433
 0.57924085 0.71687762 0.37703163 0.00550032 0.66757755 0.36496853
 0.86996948 0.75704079 0.86827924 0.60565516 0.73171818 0.25055696
 0.26490559 0.36708881 0.27852253 0.27251585 0.73235831 0.50528246
 0.07364568 0.10426392 0.75029462 0.04938492 0.85746969 0.13634836
 0.18648673 0.02747872 0.6551644  0.88502587 0.22726501 0.74367221
 0.7782758  0.59613769 0.73653628 0.35454465 0.35902062 0.78905887
 0.78022244 0.29818898 0.44463228 0.21355751 0.07544048 0.15893986
 0.44313512 0.08344274 0.51677987 0.32827173 0.83921191 0.45044779
 0.73769016 0.35815145 0.3040427  0.00884398 0.00102806 0.20599428
 0.29262636 0.56232598 0.11748816 0.65353648]
media =  0.4549525097391814
desviación standar =  0.28265017630941747







Próximo Post. Nociones de Algebra lineal y Polinomial con Numpy.


No hay comentarios:

Publicar un comentario