본문 바로가기
프로그래밍언어/파이썬[Error]

[파이썬][Error] 060. RuntimeWarning - divide by zero encountered in divide

by about_IT 2025. 5. 29.
728x90

RuntimeWarning: divide by zero encountered in divide 경고는 주로 NumPy 연산 중 0으로 나누는 경우 발생합니다. 이는 파이썬 내장 오류 ZeroDivisionError처럼 예외로 처리되는 것이 아니라 경고(warning)로 표시되며, 해당 연산 결과는 inf 또는 nan으로 반환됩니다.

이 경고는 대규모 배열 연산에서 특정 원소가 0일 때 나눗셈이 수행되면서 발생할 수 있으며, 경고를 무시하고 계산을 계속할 수도 있지만 결과가 수치적으로 의미 없을 수 있으므로 주의가 필요합니다.

● 경고 발생 예시

import numpy as np
x = np.array([1, 2, 0])
y = np.array([10, 20, 30])
result = y / x

위 코드에서 x의 마지막 요소가 0이기 때문에 10/0과 같은 연산이 발생하며 경고가 출력됩니다.

RuntimeWarning: divide by zero encountered in divide

● 해결 방법

  • 0이 포함된 원소에 대해 사전 필터링
  • NumPy의 np.seterr()로 경고 설정 변경
  • np.where()를 이용한 조건부 나눗셈 수행

● 예시 코드 (조건부 처리)

result = np.where(x != 0, y / x, 0)

● 자주 하는 실수

  • 배열의 일부 원소가 0일 수 있다는 점을 고려하지 않음
  • 불필요한 경고 메시지 무시로 인해 결과 해석 오류
  • np.inf가 포함된 상태로 후속 계산 진행

● 결론

RuntimeWarning - divide by zero encountered in divide는 배열 연산 중 0으로 나눌 때 발생하는 경고입니다. 이는 예외는 아니지만 잘못된 계산 결과로 이어질 수 있으므로 조건부 연산이나 필터링을 통해 미리 대응하는 것이 좋습니다.

728x90