[python] 난수 행렬을 만드는 간단한 방법

난수 행렬을 만들려고하는데 솔루션이 너무 길고보기 흉해 보입니다.

random_matrix = [[random.random() for e in range(2)] for e in range(3)]

이것은 괜찮아 보이지만 내 구현에서는

weights_h = [[random.random() for e in range(len(inputs[0]))] for e in range(hiden_neurons)]

매우 읽기 어렵고 한 줄에 맞지 않습니다.



답변

numpy.random.rand를 살펴 보십시오 .

독 스트링 : rand (d0, d1, …, dn)

주어진 모양의 임의 값.

주어진 형태의 배열을 생성하고 균등 분포에서 무작위 샘플로 전파합니다 [0, 1).


>>> import numpy as np
>>> np.random.rand(2,3)
array([[ 0.22568268,  0.0053246 ,  0.41282024],
       [ 0.68824936,  0.68086462,  0.6854153 ]])


답변

다음을 삭제할 수 있습니다 range(len()).

weights_h = [[random.random() for e in inputs[0]] for e in range(hiden_neurons)]

하지만 실제로는 numpy를 사용해야합니다.

In [9]: numpy.random.random((3, 3))
Out[9]:
array([[ 0.37052381,  0.03463207,  0.10669077],
       [ 0.05862909,  0.8515325 ,  0.79809676],
       [ 0.43203632,  0.54633635,  0.09076408]])


답변

사용 np.random.randint()으로 numpy.random.random_integers()사용되지 않습니다

random_matrix = numpy.random.randint(min_val,max_val,(<num_rows>,<num_cols>))


답변

Coursera Machine Learning Neural Network 연습의 Python 구현을 수행하고있는 것 같습니다. 다음은 randInitializeWeights (L_in, L_out)에 대해 수행 한 작업입니다.

#get a random array of floats between 0 and 1 as Pavel mentioned 
W = numpy.random.random((L_out, L_in +1))

#normalize so that it spans a range of twice epsilon
W = W * 2 * epsilon

#shift so that mean is at zero
W = W - epsilon


답변

먼저 numpy배열을 만든 다음 matrix. 아래 코드를 참조하십시오.

import numpy

B = numpy.random.random((3, 4)) #its ndArray
C = numpy.matrix(B)# it is matrix
print(type(B))
print(type(C))
print(C)


답변

x = np.int_(np.random.rand(10) * 10)

10 개 중 임의의 숫자에 대해. 20 개 중 20 개를 곱해야합니다.


답변

“난수 행렬”이라고 말하면 위에서 언급 한 Pavel https://stackoverflow.com/a/15451997/6169225 처럼 numpy를 사용할 수 있습니다. ) 난수를 준수합니다.

그러나 특정 분포가 필요한 경우 (균일 분포에 관심이 있다고 생각합니다), numpy.random 매우 유용한 방법이 있습니다. 예를 들어, [low, high]로 경계가 지정된 의사 랜덤 균일 분포를 갖는 3×2 행렬을 원한다고 가정 해 보겠습니다. 다음과 같이 할 수 있습니다.

numpy.random.uniform(low,high,(3,2))

uniform이 라이브러리에서 지원하는 배포판 수에 관계없이 대체 할 수 있습니다 .

추가 정보 : https://docs.scipy.org/doc/numpy/reference/routines.random.html