En este artículo, veremos en detalle la principal diferencia entre el método Numpy.random.rand() y el método Numpy.random.normal().
- Acerca de aleatorio: para aleatorio estamos tomando .rand()
numpy.random.rand (d0, d1, …, dn):
crea una array de forma específica y
la llena con valores aleatorios.
Parámetros:d0, d1, ..., dn : [int, optional] Dimension of the returned array we require, If no argument is given a single Python float is returned.
Devolver :
Array of defined shape, filled with random values.
- Acerca de lo normal: Para aleatorio estamos tomando .normal()
numpy.random.normal(loc = 0.0, scale = 1.0, size = None): crea una array de forma específica y la llena con valores aleatorios que en realidad son parte de Normal (Distribución gaussiana. Esta Distribución es también conocida como Curva de Campana por su forma característica.
Parámetros:loc : [float or array_like]Mean of the distribution. scale : [float or array_like]Standard Derivation of the distribution. size : [int or int tuples]. Output shape given as (m, n, k) then m*n*k samples are drawn. If size is None(by default), then a single value is returned.
Devolver :
Array of defined shape, filled with random values following normal distribution.
Código 1: construcción aleatoria de una array 1D
# Python Program illustrating # numpy.random.rand() method import numpy as geek # 1D Array array = geek.random.rand( 5 ) print ( "1D Array filled with random values : \n" , array) |
Producción :
1D Array filled with random values : [ 0.84503968 0.61570994 0.7619945 0.34994803 0.40113761]
Código 2: construcción aleatoria de una array 1D siguiendo la distribución gaussiana
# Python Program illustrating # numpy.random.normal() method import numpy as geek # 1D Array array = geek.random.normal(0.0, 1.0, 5) print("1D Array filled with random values " "as per gaussian distribution : \n", array) # 3D array array = geek.random.normal(0.0, 1.0, (2, 1, 2)) print("\n\n3D Array filled with random values " "as per gaussian distribution : \n", array)
Producción :
1D Array filled with random values as per gaussian distribution : [-0.99013172 -1.52521808 0.37955684 0.57859283 1.34336863] 3D Array filled with random values as per gaussian distribution : [[[-0.0320374 2.14977849]] [[ 0.3789585 0.17692125]]]
Code3: programa de Python que ilustra la representación gráfica de random vs normal en NumPy
# Python Program illustrating # graphical representation of # numpy.random.normal() method # numpy.random.rand() method import numpy as geek import matplotlib.pyplot as plot # 1D Array as per Gaussian Distribution mean = 0 std = 0.1 array = geek.random.normal(0, 0.1, 1000) print("1D Array filled with random values " "as per gaussian distribution : \n", array); # Source Code : # https://docs.scipy.org/doc/numpy-1.13.0/reference/ # generated/numpy-random-normal-1.py count, bins, ignored = plot.hist(array, 30, normed=True) plot.plot(bins, 1/(std * geek.sqrt(2 * geek.pi)) * geek.exp( - (bins - mean)**2 / (2 * std**2) ), linewidth=2, color='r') plot.show() # 1D Array constructed Randomly random_array = geek.random.rand(5) print("1D Array filled with random values : \n", random_array) plot.plot(random_array) plot.show()
Producción :
1D Array filled with random values as per gaussian distribution : [ 0.12413355 0.01868444 0.08841698 ..., -0.01523021 -0.14621625 -0.09157214] 1D Array filled with random values : [ 0.72654409 0.26955422 0.19500427 0.37178803 0.10196284]
Importante:
en el código 3, la gráfica 1 muestra claramente la distribución gaussiana tal como se crea a partir de los valores generados a través del método random.normal() siguiendo así la distribución gaussiana.
la trama 2 no sigue ninguna distribución ya que se crea a partir de valores aleatorios generados por el método random.rand().
Nota:
el código 3 no se ejecutará en la identificación en línea. Ejecútelos en sus sistemas para explorar el funcionamiento.
.
Este artículo es aportado por Mohit Gupta_OMG 😀 . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA