반응형
다음 코드가 있습니다.
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
반응형
'파이썬' 카테고리의 다른 글
파이썬 소인수 분해-목록 (0) | 2021.01.15 |
---|---|
파이썬 pandas resample documentation (0) | 2021.01.15 |
파이썬 패키지의 일부인 모든 모듈을 나열 하시겠습니까? (0) | 2021.01.15 |
파이썬 축은 numpy의 배열에서 어떻게 인덱싱됩니까? (0) | 2021.01.15 |
파이썬 할당 연산자와 함께 쉼표와 밑줄을 사용하는 의미? (0) | 2021.01.15 |
댓글