프로그래밍언어/파이썬[Error]

[파이썬][Error] 091. FloatingPointError - invalid float operation

about_IT 2025. 5. 31. 05:34
728x90

FloatingPointError: invalid float operation 오류는 부동소수점(float) 연산 중에 정의되지 않거나 유효하지 않은 연산이 발생했을 때 발생합니다. 예를 들어 0으로 나누기, 무한대 연산, NaN(Not a Number) 연산 등이 대표적입니다.

파이썬에서는 일반적인 부동소수점 오류는 무시되고 inf 또는 nan으로 반환되지만, numpy에서 오류 감지를 강화할 경우 FloatingPointError를 명시적으로 발생시킬 수 있습니다.

● 오류 발생 예시

import numpy as np
np.seterr(all="raise")
x = np.array([1.0, 0.0])
result = x[0] / x[1]

0으로 나누기 연산을 명시적으로 감지하도록 설정했기 때문에 FloatingPointError가 발생합니다.

FloatingPointError: divide by zero encountered in divide

● 해결 방법

  • 분모가 0이 되는 상황을 사전에 방지
  • np.seterr() 설정을 통해 오류 감지 조절
  • np.isfinite()로 유효한 수치인지 검사

● 예시 코드 (검사 포함)

if x[1] != 0:
    result = x[0] / x[1]
else:
    result = 0.0

● 자주 하는 실수

  • 0으로 나누기 연산이 가능하다고 가정
  • NaN 값이 포함된 배열을 사전 필터링 없이 연산
  • 부동소수점 경고를 무시하고 누적 처리

● 결론

FloatingPointError - invalid float operation 오류는 수치적으로 정의되지 않은 부동소수점 연산에서 발생합니다. 데이터를 사전에 정제하고 예외 가능성을 고려한 수치 검사를 통해 오류를 방지해야 합니다.

728x90