Módulo aleatorio necesario para simulación numérica

Este módulo implementa varios generadores de números pseudoaleatorios distribuidos. Puede dibujar un número aleatorio en el intervalo, puede extraer un elemento de la lista, puede extraer una muestra de la distribución.
No se puede acceder directamente al módulo aleatorio, debe importar el módulo aleatorio y luego llamar a este método a través del objeto estático aleatorio.

import random 

1 Genera números aleatorios

La semilla del generador aleatorio, bajo la misma semilla, genera el mismo número aleatorio

random.seed()  

Devuelve el siguiente número de coma flotante aleatorio en el rango [0, 1.0).

random.random()

random.int (a, b) genera un número entero, a <= N <= b.

random.randint(1,4) # 
2 

2 Seleccione aleatoriamente uno en la secuencia

Selecciona aleatoriamente un número entero en el rango de secuencia () random.randrange (inicio, parada, paso)

random.randrange(1,5,2)
3

random.choice (población), devuelve un elemento aleatorio de la población de secuencia no vacía. Si seq está vacío, se genera un IndexError.

random.choice([2,5,8]) 
8

opciones.aleatorias (población, pesos = Ninguno, *, cum_weights = Ninguno, k) Extraiga K del total de acuerdo con el peso, y la longitud de la secuencia de pesos debe ser igual a la longitud de la población. Obviamente, no se da ningún peso y k = 1. Es equivalente a
random.choice (población).

random.choices(['red', 'black', 'green'], [4, 10, 2], k=6)
['green', 'black', 'red', 'black', 'green', 'black']

random.sample (población, k, *, conteos = Ninguno), devuelve una lista de k de longitud de elementos únicos seleccionados de la secuencia de población o conjunto, es decir, muestreo aleatorio sin repetición (sin reemplazo).

random.sample(['red', 'black', 'green'], 2) 
['red', 'green']

Después de la versión 3.9, se agrega el parámetro de conteos y se puede especificar el número. Random.sample (['red', 'red', 'red', 'black', 'green'], 2) es equivalente a random. muestra (['rojo', 'negro', 'verde'], conteos = [3,1,1], 2)

3 extrae una muestra de la distribución

Las distribuciones más utilizadas son las siguientes:

función repartido
gauss (mu, sigma) / normalvarita (mu, sigma) Distribución normal
uniforme (a, b) Distribuidos equitativamente
expovariar (lamda) distribución del índice
gammavariate (alfa, beta) Distribución gamma
lognormvariate (mu, sigma) Distribución lognormal
betavariar (alfa, beta) Distribución beta
weibullvariate (alfa, beta) Distribución de Weibull
paretovariable (alfa) Distribución de Pareto
vonmisesvariate (mu, kappa) distribución de von Mises (
random.gauss(1,2)
-0.34372692554557815
random.uniform(1,2)
1.7719936383153665
random.expovariate(1)
0.079384517694696
random.gammavariate(1,3)
3.8134444290373866
random.lognormvariate(1,2)
2.561312589509173
random.betavariate(1,2)
0.03565784800319274
random.weibullvariate(1,2)
1.211306128111137
random.paretovariate(1)
1.709941711311189
random.vonmisesvariate(1,2)
2.377632588889548
data = [random.gammavariate(2,4) for i in range(10000)] # 抽取10000个gamma分布样本
#直方图
import matplotlib.pyplot as plt
plt.hist(data, bins=100,  color="#FF0000", alpha=.7)

Inserte la descripción de la imagen aquí

4 Mezclar el orden

random.shuffle (x [, random]) Mezcla la secuencia x aleatoriamente.

a=[1,3,5,7,9]
random.shuffle(a);print(a) 
[3, 7, 5, 1, 9] #  原地打乱顺序

Supongo que te gusta

Origin blog.csdn.net/weixin_43705953/article/details/109025791
Recomendado
Clasificación