random.choice(a, size=None, replace=True, p=None)

Genera una muestra aleatoria de un 1-D dado array

Nuevo en la versión 1.7.0.

Nota

El nuevo código debe usar el choice método de un default_rng() instancia en su lugar; por favor vea el Inicio rápido.

Parámetros
a1-D array-like or int

Si es un ndarray, se genera una muestra aleatoria a partir de sus elementos. Si es un int, la muestra aleatoria se genera como si fuera np.arange(a)

sizeint or tuple of ints, optional

Forma de salida. Si la forma dada es, por ejemplo, (m, n, k)entonces m * n * k se extraen muestras. El valor predeterminado es Ninguno, en cuyo caso se devuelve un solo valor.

replaceboolean, optional

Si la muestra es con o sin reemplazo

p1-D array-like, optional

Las probabilidades asociadas con cada entrada en a. Si no se proporciona, la muestra asume una distribución uniforme sobre todas las entradas en a.

Devoluciones
samplessingle item or ndarray

Las muestras aleatorias generadas

aumenta
ValorError

Si a es un int y menor que cero, si a o p no son unidimensionales, si a es un array-como de tamaño 0, si p no es un vector de probabilidades, si a y p tienen longitudes diferentes, o si replace=False y el tamaño de la muestra es mayor que el tamaño de la población

Ver también

randint, shuffle,permutation
Generator.choice

que se debe utilizar en el nuevo código

notas

Muestreo de filas aleatorias de un 2-D array no es posible con esta función, pero es posible con Generator.choice a través de su axis palabra clave.

Ejemplos

Genere una muestra aleatoria uniforme de np.arange(5) de tamaño 3:

>>> np.random.choice(5,3)
array([0,3,4])# random>>>#This is equivalent to np.random.randint(0,5,3)

Genere una muestra aleatoria no uniforme de np.arange(5) de tamaño 3:

>>> np.random.choice(5,3, p=[0.1,0,0.3,0.6,0])
array([3,3,0])# random

Genere una muestra aleatoria uniforme de np.arange(5) de tamaño 3 sin reemplazo:

>>> np.random.choice(5,3, replace=False)
array([3,1,0])# random>>>#This is equivalent to np.random.permutation(np.arange(5))[:3]

Genere una muestra aleatoria no uniforme de np.arange(5) de tamaño 3 sin reemplazo:

>>> np.random.choice(5,3, replace=False, p=[0.1,0,0.3,0.6,0])
array([2,3,0])# random

Cualquiera de los anteriores se puede repetir con un arbitrario array-como en lugar de solo números enteros. Por ejemplo:

>>> aa_milne_arr =['pooh','rabbit','piglet','Christopher']>>> np.random.choice(aa_milne_arr,5, p=[0.5,0.1,0.1,0.3])
array(['pooh','pooh','pooh','Christopher','piglet'],# random
      dtype=')