Estoy tratando de crear una matriz de números aleatorios, pero mi solución es demasiado larga y se ve fea
random_matrix = [[random.random() for e in range(2)] for e in range(3)]
esto se ve bien, pero en mi implementación es
weights_h = [[random.random() for e in range(len(inputs[0]))] for e in range(hiden_neurons)]
que es extremadamente ilegible y no cabe en una línea.
python
random
coding-style
usuario2173836
fuente
fuente
numpy.random.random_integers(low, high, shape)
, por ejemplonumpy.random.random_integers(0, 100, (3, 3))
numpy.random.random
como muchos de los otrosnumpy.random
métodos, acepta formas, es decir, N-tuplas. Entonces, realmente, las paréntesis externas representan la llamada al métodonumpy.random.random()
, y las paréntesis internas son azúcar sintáctico para instanciar la tupla(3, 3)
que se pasa a la función.numpy.random.random_integers()
es obsoleto. Úselo en sunumpy.random.randint()
lugar. docs.scipy.org/doc/numpy/reference/generated/…usar
np.random.randint()
comonumpy.random.random_integers()
está en desusofuente
Parece que está realizando una implementación en Python del ejercicio de la red neuronal de aprendizaje automático de Coursera. Esto es lo que hice para randInitializeWeights (L_in, L_out)
fuente
Primero, cree una
numpy
matriz y luego conviértala enmatrix
. Vea el código a continuación:fuente
Para números aleatorios sobre 10. Para sobre 20, tenemos que multiplicar por 20.
fuente
Cuando dices "una matriz de números aleatorios", puedes usar numpy como Pavel https://stackoverflow.com/a/15451997/6169225 mencionado anteriormente, en este caso, supongo que es irrelevante para usted qué distribución estos (pseudo ) se adhieren a los números aleatorios.
Sin embargo, si necesita una distribución en particular (imagino que le interesa la distribución uniforme),
numpy.random
tiene métodos muy útiles para usted. Por ejemplo, supongamos que desea una matriz de 3x2 con una distribución uniforme pseudoaleatoria limitada por [bajo, alto]. Puedes hacer esto así:Tenga en cuenta que puede reemplazar
uniform
por cualquier número de distribuciones compatibles con esta biblioteca.Más información: https://docs.scipy.org/doc/numpy/reference/routines.random.html
fuente
Una forma sencilla de crear una matriz de números enteros aleatorios es:
Lo siguiente genera una matriz de 2 por 3 de enteros aleatorios de 0 a 10:
fuente
Para crear una matriz de números aleatorios, NumPy proporciona la creación de una matriz usando:
Numeros reales
Enteros
Para crear una matriz usando números reales aleatorios : hay 2 opciones
random.rand
random.randn
Para crear una matriz usando enteros aleatorios :
dónde
p.ej:
El ejemplo dado producirá una matriz de enteros aleatorios entre 0 y 4, su tamaño será 5 * 5 y tendrá 25 enteros
para crear una matriz de 5 por 5, debe modificarse para
arr2 = np.random.randint (0,5, size = (5,5)), cambie el símbolo de multiplicación * a una coma, #
eg2:
El ejemplo dado producirá una matriz de enteros aleatorios entre 0 y 1, su tamaño será 1 * 10 y tendrá 10 enteros
fuente
fuente
Una respuesta usando map-reduce: -
fuente
fuente
numpy.random.rand (fila, columna) genera números aleatorios entre 0 y 1, de acuerdo con los parámetros especificados (m, n) dados. Así que utilícelo para crear una matriz (m, n) y multiplique la matriz para el límite de rango y sume con el límite superior.
Analizando: Si se genera cero, solo se mantendrá el límite bajo, pero si se genera uno solo se mantendrá el límite alto. En otras palabras, generando los límites usando rand numpy puede generar los números extremos deseados.
Salida:
fuente