2017-03-28 1 views
0

저는 파이썬에 초보입니다. 확률 p에 대해 각 값 0을 갖는 무작위 nxm 이진 행렬을 생성하는 함수를 작성하고 싶습니다.파이썬에서 확률로 이진 랜덤 매트릭스를 만듭니다.

내가 한 것.

def randbin(M,N,P):    # function to generate random binary matrix  
    mat = (np.random.rand(M,N)>=P).astype(int) 
    return mat 

y = randbin(5,4,0.3) 

출력을 인쇄 할 때마다 예상 확률대로 결과를 얻지 못했습니다. 내가 뭘 잘못하고 있는지 모르겠다.

def randbin(M,N,P): 
    return np.random.choice([0, 1], size=(M,N), p=[P, 1-P]) 

더 잘 이해하려면

답변

0

나는 당신의 방법으로 문제를 보지 않는다는 ... 0의 확률 P와 0과 1의 임의의 행렬을 생성하는 더 좋은 방법은 random.choice을 사용하는 것입니다 random.choice 설명서를 살펴보십시오.

+0

Thanx 많이 .. 나는 그것을 시도 할 것입니다 .. – sumsan

+0

그것이 작동한다면, 내 대답의 왼쪽에있는 체크 표시를 체크하여 답변을 게시물로 표시하는 것을 잊지 마시기 바랍니다 (그리고 스택에 오신 것을 환영합니다) – Derlin

+0

크기는 항상 튜플입니다. 예를 들어 위의 함수에서 크기 100의 이진 행렬을 만들고 싶습니다. 예를 들어, np.random.choice ([0,1], size = (100).) 그러면 길이가 1 인 배열 만 파이썬 스칼라로 변환 될 수 있습니다 – sumsan

관련 문제