[PYTHON] NaN 값을 어떻게 확인할 수 있습니까?
PYTHONNaN 값을 어떻게 확인할 수 있습니까?
float ( 'nan') 결과는 Nan (숫자가 아님) 결과입니다. 하지만 어떻게 확인합니까? 매우 쉬워야하지만 찾을 수는 없습니다.
해결법
-
==============================
1.math.isnan ()
math.isnan ()
>>> import math >>> x=float('nan') >>> math.isnan(x) True >>>
-
==============================
2.NaN을 테스트하는 일반적인 방법은 그것이 자체와 동일한 지 확인하는 것입니다.
NaN을 테스트하는 일반적인 방법은 그것이 자체와 동일한 지 확인하는 것입니다.
def isNaN(num): return num != num
-
==============================
3.numpy.isnan (number)는 파이썬 2.5에서 NaN인지 아닌지를 알려줍니다.
numpy.isnan (number)는 파이썬 2.5에서 NaN인지 아닌지를 알려줍니다.
-
==============================
4.나는 실제로 이것에 부딪쳤다. 그러나 나를 위해 그것은 nan, -inf 또는 inf를 점검하고 있었다. 방금 사용했습니다.
나는 실제로 이것에 부딪쳤다. 그러나 나를 위해 그것은 nan, -inf 또는 inf를 점검하고 있었다. 방금 사용했습니다.
if float('-inf') < float(num) < float('inf'):
이는 숫자에 대해서는 true이고, nan과 inf에 대해서는 false이며, 문자열이나 다른 유형 (아마도 좋은 점)에 대해서는 예외가 발생합니다. 또한 이것은 수학이나 numpy 같은 라이브러리를 가져올 필요가 없습니다 (numpy는 컴파일 된 애플리케이션의 크기가 두 배로 큽니다).
-
==============================
5.math.isnan ()
math.isnan ()
또는 번호를 그 자체와 비교하십시오. NaN은 항상! = NaN입니다. 그렇지 않으면 (예 : 숫자 인 경우) 비교가 성공해야합니다.
-
==============================
6.<2.6에 고정되어 있고 numpy가없고 IEEE 754를 지원하지 않는 또 다른 방법은 다음과 같습니다.
<2.6에 고정되어 있고 numpy가없고 IEEE 754를 지원하지 않는 또 다른 방법은 다음과 같습니다.
def isNaN(x): return str(x) == str(1e400*0)
-
==============================
7.여기에 대한 답변은 다음과 같습니다.
여기에 대한 답변은 다음과 같습니다.
여기있어:
import numpy as np def is_nan(x): return (x is np.nan or x != x)
그리고 몇 가지 예 :
values = [float('nan'), np.nan, 55, "string", lambda x : x] for value in values: print "{:<8} : {}".format(repr(value), is_nan(value))
산출:
nan : True nan : True 55 : False 'string' : False <function <lambda> at 0x000000000927BF28> : False
-
==============================
8.파이썬 2.6 이하에서는 결국
파이썬 2.6 이하에서는 결국
def isNaN(x): return str(float(x)).lower() == 'nan'
이것은 나를 위해 파이썬 2.5.1에서 솔라리스 5.9 상자와 파이썬 2.6.5와 우분투 10에서 작동합니다
-
==============================
9.글쎄, 나는이 포스트에 들어갔다. 왜냐하면 나는이 함수에 몇 가지 문제가 있었기 때문이다 :
글쎄, 나는이 포스트에 들어갔다. 왜냐하면 나는이 함수에 몇 가지 문제가 있었기 때문이다 :
math.isnan()
이 코드를 실행하면 문제가 발생합니다.
a = "hello" math.isnan(a)
그것은 예외를 제기합니다. 내 솔루션에 대한 또 다른 확인을하는 것입니다 :
def is_nan(x): return isinstance(x, float) and math.isnan(x)
-
==============================
10.변수가 NaN인지 또는 None인지 알려주는 모든 메소드 :
변수가 NaN인지 또는 None인지 알려주는 모든 메소드 :
없음 유형
In [1]: from numpy import math In [2]: a = None In [3]: not a Out[3]: True In [4]: len(a or ()) == 0 Out[4]: True In [5]: a == None Out[5]: True In [6]: a is None Out[6]: True In [7]: a != a Out[7]: False In [9]: math.isnan(a) Traceback (most recent call last): File "<ipython-input-9-6d4d8c26d370>", line 1, in <module> math.isnan(a) TypeError: a float is required In [10]: len(a) == 0 Traceback (most recent call last): File "<ipython-input-10-65b72372873e>", line 1, in <module> len(a) == 0 TypeError: object of type 'NoneType' has no len()
NaN 유형
In [11]: b = float('nan') In [12]: b Out[12]: nan In [13]: not b Out[13]: False In [14]: b != b Out[14]: True In [15]: math.isnan(b) Out[15]: True
-
==============================
11.NaN을 문자열 'Nan'으로 보내는 웹 서비스에서 데이터를 수신하고 있습니다. 그러나 내 데이터에도 다른 종류의 문자열이있을 수 있으므로 간단한 float (값)은 예외를 throw 할 수 있습니다. 나는 받아 들인 대답의 뒤에 오는 이체를 사용했다 :
NaN을 문자열 'Nan'으로 보내는 웹 서비스에서 데이터를 수신하고 있습니다. 그러나 내 데이터에도 다른 종류의 문자열이있을 수 있으므로 간단한 float (값)은 예외를 throw 할 수 있습니다. 나는 받아 들인 대답의 뒤에 오는 이체를 사용했다 :
def isnan(value): try: import math return math.isnan(float(value)) except: return False
요구 사항 :
isnan('hello') == False isnan('NaN') == True isnan(100) == False isnan(float('nan')) = True
-
==============================
12.
>>> import pandas as pd >>> value = float(nan) >>> type(value) >>> <class 'float'> >>> pd.isnull(value) True >>> >>> value = 'nan' >>> type(value) >>> <class 'str'> >>> pd.isnull(value) False
-
==============================
13.팬더에서 문자열을 가져 가려면 pd.isnull :
팬더에서 문자열을 가져 가려면 pd.isnull :
if not pd.isnull(atext): for word in nltk.word_tokenize(atext):
NLTK를위한 특징 추출 기능
def act_features(atext): features = {} if not pd.isnull(atext): for word in nltk.word_tokenize(atext): if word not in default_stopwords: features['cont({})'.format(word.lower())]=True return features
from https://stackoverflow.com/questions/944700/how-can-i-check-for-nan-values by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 한 줄에 한 문자 씩 인쇄하는 법? (0) | 2018.10.08 |
---|---|
[PYTHON] 파이썬 - 문자열에서 문자를 찾으십시오 - 모든 색인을 가져올 수 있습니까? (0) | 2018.10.08 |
[PYTHON] datetime.isocalendar ()의 역함수를 찾는 가장 좋은 방법은 무엇입니까? (0) | 2018.10.08 |
[PYTHON] 파이썬 프라임 번호 검사기 [duplicate] (0) | 2018.10.08 |
[PYTHON] 가장 길게 증가하는 서브 시퀀스 (0) | 2018.10.08 |