복붙노트

[PYTHON] NaN 값을 어떻게 확인할 수 있습니까?

PYTHON

NaN 값을 어떻게 확인할 수 있습니까?

float ( 'nan') 결과는 Nan (숫자가 아님) 결과입니다. 하지만 어떻게 확인합니까? 매우 쉬워야하지만 찾을 수는 없습니다.

해결법

  1. ==============================

    1.math.isnan ()

    math.isnan ()

    >>> import math
    >>> x=float('nan')
    >>> math.isnan(x)
    True
    >>> 
    
  2. ==============================

    2.NaN을 테스트하는 일반적인 방법은 그것이 자체와 동일한 지 확인하는 것입니다.

    NaN을 테스트하는 일반적인 방법은 그것이 자체와 동일한 지 확인하는 것입니다.

    def isNaN(num):
        return num != num
    
  3. ==============================

    3.numpy.isnan (number)는 파이썬 2.5에서 NaN인지 아닌지를 알려줍니다.

    numpy.isnan (number)는 파이썬 2.5에서 NaN인지 아닌지를 알려줍니다.

  4. ==============================

    4.나는 실제로 이것에 부딪쳤다. 그러나 나를 위해 그것은 nan, -inf 또는 inf를 점검하고 있었다. 방금 사용했습니다.

    나는 실제로 이것에 부딪쳤다. 그러나 나를 위해 그것은 nan, -inf 또는 inf를 점검하고 있었다. 방금 사용했습니다.

    if float('-inf') < float(num) < float('inf'):
    

    이는 숫자에 대해서는 true이고, nan과 inf에 대해서는 false이며, 문자열이나 다른 유형 (아마도 좋은 점)에 대해서는 예외가 발생합니다. 또한 이것은 수학이나 numpy 같은 라이브러리를 가져올 필요가 없습니다 (numpy는 컴파일 된 애플리케이션의 크기가 두 배로 큽니다).

  5. ==============================

    5.math.isnan ()

    math.isnan ()

    또는 번호를 그 자체와 비교하십시오. NaN은 항상! = NaN입니다. 그렇지 않으면 (예 : 숫자 인 경우) 비교가 성공해야합니다.

  6. ==============================

    6.<2.6에 고정되어 있고 numpy가없고 IEEE 754를 지원하지 않는 또 다른 방법은 다음과 같습니다.

    <2.6에 고정되어 있고 numpy가없고 IEEE 754를 지원하지 않는 또 다른 방법은 다음과 같습니다.

    def isNaN(x):
        return str(x) == str(1e400*0)
    
  7. ==============================

    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. ==============================

    8.파이썬 2.6 이하에서는 결국

    파이썬 2.6 이하에서는 결국

    def isNaN(x):
        return str(float(x)).lower() == 'nan'
    

    이것은 나를 위해 파이썬 2.5.1에서 솔라리스 5.9 상자와 파이썬 2.6.5와 우분투 10에서 작동합니다

  9. ==============================

    9.글쎄, 나는이 포스트에 들어갔다. 왜냐하면 나는이 함수에 몇 가지 문제가 있었기 때문이다 :

    글쎄, 나는이 포스트에 들어갔다. 왜냐하면 나는이 함수에 몇 가지 문제가 있었기 때문이다 :

    math.isnan()
    

    이 코드를 실행하면 문제가 발생합니다.

    a = "hello"
    math.isnan(a)
    

    그것은 예외를 제기합니다. 내 솔루션에 대한 또 다른 확인을하는 것입니다 :

    def is_nan(x):
        return isinstance(x, float) and math.isnan(x)
    
  10. ==============================

    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. ==============================

    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. ==============================

    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. ==============================

    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
    
  14. from https://stackoverflow.com/questions/944700/how-can-i-check-for-nan-values by cc-by-sa and MIT license