본문 바로가기
파이썬

파이썬 NaN으로 채워진 numpy 행렬 만들기

by º기록 2021. 1. 15.
반응형

다음 코드가 있습니다.

r = numpy.zeros(shape = (width, height, 9))

0으로 채워진 너비 x 높이 x 9 행렬을 만듭니다. 대신 쉽게 NaN 으로 초기화하는 함수 나 방법이 있는지 알고 싶습니다.

 

해결 방법

 

numpy에서 벡터 연산을 위해 루프가 거의 필요하지 않습니다. 초기화되지 않은 배열을 만들고 한 번에 모든 항목에 할당 할 수 있습니다.

>>> a = numpy.empty((3,3,))
>>> a[:] = numpy.nan
>>> a
array([[ NaN,  NaN,  NaN],
       [ NaN,  NaN,  NaN],
       [ NaN,  NaN,  NaN]])

Blaenk가 게시 한 대안 a [:] = numpy.nan a.fill (numpy.nan) 의 시간을 정했습니다.

$ python -mtimeit "import numpy as np; a = np.empty((100,100));" "a.fill(np.nan)"
10000 loops, best of 3: 54.3 usec per loop
$ python -mtimeit "import numpy as np; a = np.empty((100,100));" "a[:] = np.nan" 
10000 loops, best of 3: 88.8 usec per loop

타이밍은 더 빠른 대안으로 ndarray.fill (..) 에 대한 선호도를 보여줍니다. OTOH, 나는 당신이 값을 전체 조각에 할당 할 수있는 numpy의 편리한 구현을 좋아한다. 코드의 의도는 매우 분명하다.

ndarray.fill 은 작업을 제자리에서 수행하므로 numpy.empty ((3,3,)). fill (numpy.nan) 은 대신 없음 .

 

참조 페이지 https://stackoverflow.com/questions/1704823

 

 

반응형

댓글