난 값이 nan
인 numpy 배열 X가 있습니다.나노 값에 대한 난수 배열 numpy 배열
X = np.array([[ 1., 2., 3.],
[ 4., nan, 54.],
[ 90., 32., nan],
[ 55., 42., 86.]])
나는 모든 유모가 다른 난수 값 대체하고 싶습니다. np.random.randn()
으로 난수를 쉽게 생성 할 수 있습니다. 마스크를 사용하여 국가를 찾고 계산할 수 있습니다.
mx = ma.masked_array(X,mask=np.isnan(X)) //locate nans
mx.mask.sum() // count nans so I know how many random values to generate
문제점은 신속하고 효율적으로 입력하는 방법을 모르겠다는 것입니다. 위에 주어진 예는 매우 작은 데이터 세트이지만 훨씬 더 큰 데이터 세트를 가지고 있습니다. 따라서 효율이 중요합니다. 내가
X[mx.mask] = np.random.randn() //or
X[mx.mask]=np.random.randn(mx.mask.sum())
을하려고하면
는 내가 원하는되지 무엇 같은 임의의 숫자와 각 유모를 교체하거나 내가 두 번째 예에서 방송 오류가 발생합니다.
제안 사항?
이 정보가 도움이됩니까? http://stackoverflow.com/questions/7701429/efficient-evaluation-of-a-function-at-every-cell-of-a-numpy-array – grebneke