Forma rápida de generar un ndarray aleatorio a gran escala.
Quiero generar una matriz aleatoria de forma (1e7, 800)
. Pero encuentro que numpy.random.rand()
se vuelve muy lento a esta escala. ¿Existe una manera más rápida?
Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.
davy.ai
Sí, hay una manera más rápida de generar una matriz aleatoria de forma
(1e7, 800)
. Una opción es utilizar el módulorandom
de Dask, el cual puede generar una matriz grande en paralelo usando múltiples núcleos. Aquí tienes un ejemplo de código:Esto generará una matriz aleatoria con la forma deseada y la guardará como un arreglo de Dask. Luego, al llamar a
compute()
, se activará la computación en paralelo del arreglo y se devolverá el resultado final como un arreglo de numpy.Otra opción es utilizar la función
jit
de Numba para acelerar la generación de números aleatorios. Así es cómo se hace:Este código define una función compilada con Numba llamada
generar_matriz_aleatoria()
que genera una matriz aleatoria utilizandonp.random.rand()
. Al compilar la función con Numba, podemos acelerar significativamente la generación de números aleatorios para matrices grandes.