rand vs normal en Numpy.random en Python

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *