Numpy 정수 배열에 NaN을 저장하는 방법이 있습니까? 정수에서 그 어떤 표현이없는,Numpy integer nan
a=np.array([1],dtype=long)
a[0]=np.nan
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: cannot convert float NaN to integer
Numpy 정수 배열에 NaN을 저장하는 방법이 있습니까? 정수에서 그 어떤 표현이없는,Numpy integer nan
a=np.array([1],dtype=long)
a[0]=np.nan
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: cannot convert float NaN to integer
처럼 잘못된 값을 선택하지 : 내가 얻을 아니요, 적어도 현재 NumPy 버전에서는 사용할 수 없습니다. nan
은 부동 배열 의 경우에만의 특수 값입니다.
비 플로트 배열이 실제적으로 nan
에 해당하는 것을 저장할 수있는 특수 비트를 도입하는 데 대한 회담이 있지만 지금까지만 (2012/10) 회담입니다.
그동안 numpy.ma
패키지를 고려해 볼 수 있습니다. -99999와 같은 잘못된 정수를 선택하는 대신 numpy.ma.masked
값을 사용하여 잘못된 값을 나타낼 수 있습니다.
a = np.ma.array([1,2,3,4,5], dtype=int)
a[1] = np.ma.masked
masked_array(data = [1 -- 3 4 5],
mask = [False True False False False],
fill_value = 999999)
그러나 마스크 된 배열을 사용하려면 순수한 파이썬으로 구현되므로 성능 비용이 엄청납니다! – gaborous
NaN인지는 부동 소수점 유일한 것은, 그래서 더 :
는 -99999
정규식 값을 유효하지 않은 것으로 선택하는 것은 좋은 속성이 아닙니다. 즉, nan과 동일한 속성을 복제하지 않기 때문입니다. 즉, 해당 값을 포함한 다른 값과의 비교는 false 여야합니다. – christang
@ tpg2114 예, 거기에 대한 대답이 numpy 또는 pandas 인 경우 나에게 명확하지 않습니다. – Yariv