[python] NumPy에서 NaN 값을 다른 값으로 대체하는 방법은 무엇인가요?
import numpy as np

arr = np.array([1, 2, np.nan, 4, np.inf, -np.inf])

arr_replaced = np.nan_to_num(arr)

print(arr_replaced)

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

[ 1.  2.  0.  4. 10. -10.]

또 다른 방법은 numpy.isnan() 함수와 논리 연산을 사용하여 NaN 값을 필터링하고, 필터링된 값을 다른 값으로 대체하는 것입니다.

import numpy as np

arr = np.array([1, 2, np.nan, 4, np.inf, -np.inf])

arr_filtered = np.isnan(arr)
arr[arr_filtered] = 0

print(arr)

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

[ 1.  2.  0.  4. inf -inf]

이러한 방법 외에도 Pandas 라이브러리를 사용하여 NaN 값을 대체할 수도 있습니다. Pandas의 fillna() 메서드를 사용하여 NaN 값을 원하는 값으로 대체할 수 있습니다.

import pandas as pd

df = pd.DataFrame({"A": [1, 2, 3, np.nan, 5]})
df_filled = df.fillna(0)

print(df_filled)

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

     A
0  1.0
1  2.0
2  3.0
3  0.0
4  5.0

이러한 방법들을 사용하여 NumPy에서 NaN 값을 다른 값으로 대체할 수 있습니다.

참고문서: