Estou tentando criar uma matriz de números aleatórios, mas minha solução é muito longa e parece feia
random_matrix = [[random.random() for e in range(2)] for e in range(3)]
isso parece ok, mas na minha implementação é
weights_h = [[random.random() for e in range(len(inputs[0]))] for e in range(hiden_neurons)]
que é extremamente ilegível e não cabe em uma linha.
python
random
coding-style
user2173836
fonte
fonte
numpy.random.random_integers(low, high, shape)
, por exemplonumpy.random.random_integers(0, 100, (3, 3))
numpy.random.random
como muitos dos outrosnumpy.random
métodos, aceita formas, ou seja, N-tuplas. Portanto, na verdade, os parênteses externos representam a chamada do métodonumpy.random.random()
, e os parênteses internos são açúcar sintático para instanciar a tupla(3, 3)
que é passada para a função.numpy.random.random_integers()
está obsoleto. Use em seunumpy.random.randint()
lugar. docs.scipy.org/doc/numpy/reference/generated/…usar
np.random.randint()
comonumpy.random.random_integers()
está obsoletofonte
Parece que você está fazendo uma implementação em Python do exercício Coursera Machine Learning Neural Network. Aqui está o que fiz para randInitializeWeights (L_in, L_out)
fonte
Primeiro, crie o
numpy
array e depois converta-o emmatrix
. Veja o código abaixo:fonte
Para números aleatórios de 10. Para de 20, temos que multiplicar por 20.
fonte
Quando você diz "uma matriz de números aleatórios", você pode usar numpy como Pavel https://stackoverflow.com/a/15451997/6169225 mencionado acima, neste caso estou assumindo para você que é irrelevante a distribuição desses (pseudo ) os números aleatórios aderem.
Porém, se você necessita de uma distribuição particular (imagino que esteja interessado na distribuição uniforme),
numpy.random
possui métodos muito úteis para você. Por exemplo, digamos que você queira uma matriz 3x2 com uma distribuição uniforme pseudoaleatória limitada por [baixo, alto]. Você pode fazer isso assim:Observe que você pode substituir
uniform
por qualquer número de distribuições suportadas por esta biblioteca.Leitura adicional: https://docs.scipy.org/doc/numpy/reference/routines.random.html
fonte
Uma maneira simples de criar uma matriz de inteiros aleatórios é:
O seguinte resulta em uma matriz 2 por 3 de inteiros aleatórios de 0 a 10:
fonte
Para criar uma matriz de números aleatórios, o NumPy fornece a criação de uma matriz usando:
Numeros reais
Inteiros
Para criar uma matriz usando números reais aleatórios : há 2 opções
random.rand
random.randn
Para criar uma matriz usando números inteiros aleatórios :
Onde
por exemplo:
O exemplo dado irá produzir uma matriz de inteiros aleatórios entre 0 e 4, seu tamanho será 5 * 5 e terá 25 inteiros
a fim de criar uma matriz 5 por 5, ela deve ser modificada para
arr2 = np.random.randint (0,5, size = (5,5)), mude o símbolo de multiplicação * para uma vírgula, #
eg2:
O exemplo dado irá produzir uma matriz de inteiros aleatórios entre 0 e 1, seu tamanho será 1 * 10 e terá 10 inteiros
fonte
fonte
Uma resposta usando mapa-reduzir: -
fonte
fonte
numpy.random.rand (linha, coluna) gera números aleatórios entre 0 e 1, de acordo com os parâmetros especificados (m, n) dados. Portanto, use-o para criar uma matriz (m, n) e multiplique a matriz para o limite da faixa e some-a com o limite superior.
Analisando: Se zero for gerado, apenas o limite inferior será mantido, mas se um for gerado, apenas o limite superior será mantido. Em outras palavras, gerando os limites usando rand numpy, você pode gerar os números extremos desejados.
Resultado:
fonte