Python과 NumPy를 사용하여 NaN으로 채워진 NumPy 행렬 생성하기
Python과 NumPy를 사용하여 NaN으로 채워진 NumPy 행렬 생성하기
numpy
: NumPy 배열 및 행렬 작업을 위한 기본 라이브러리random
: 무작위 수 생성을 위한 라이브러리 (선택 사항)
단계:
- NumPy 가져오기:
import numpy as np
- 행렬 크기 지정:
행 = 5
열 = 3
- NaN으로 채워진 행렬 생성:
행렬 = np.nan * np.ones((행, 열))
설명:
np.nan
은 NumPy에서 NaN(Not a Number) 값을 나타냅니다.np.ones
함수는 모든 원소가 1인 행렬을 생성합니다.*
연산자는 각 원소를 곱합니다.(행, 열)
튜플은 행렬의 크기를 지정합니다.
예시:
import numpy as np
행 = 5
열 = 3
행렬 = np.nan * np.ones((행, 열))
print(행렬)
출력:
[[nan nan nan]
[nan nan nan]
[nan nan nan]
[nan nan nan]
[nan nan nan]]
변형:
- 특정 값으로 채우려면
np.full
함수를 사용할 수 있습니다. 예를 들어, 모든 원소를 5로 채우려면 다음과 같이 합니다.
행렬 = np.full((행, 열), 5)
- 무작위 NaN 값으로 채우려면
np.random.rand
함수를 사용할 수 있습니다. 예를 들어, 각 원소가 0과 1 사이의 균일한 난수이고 50% 확률로 NaN인 행렬을 만들려면 다음과 같이 합니다.
행렬 = np.random.rand(행, 열)
행렬[np.random.rand(행, 열) < 0.5] = np.nan
참고:
- NaN은 데이터 누락 또는 유효하지 않음을 나타내는 데 사용됩니다. 데이터 분석에서 NaN을 올바르게 처리하는 것이 중요합니다.
예제 코드
import numpy as np
# 행렬 크기 지정
행 = 5
열 = 3
# NaN으로 채워진 행렬 생성
행렬 = np.nan * np.ones((행, 열))
# 행렬 출력
print(행렬)
[[nan nan nan]
[nan nan nan]
[nan nan nan]
[nan nan nan]
[nan nan nan]]
- 특정 값으로 채우기:
# 모든 원소를 5로 채우기
행렬 = np.full((행, 열), 5)
# 행렬 출력
print(행렬)
[[5 5 5]
[5 5 5]
[5 5 5]
[5 5 5]
[5 5 5]]
- 무작위 NaN 값으로 채우기:
# 각 원소가 0과 1 사이의 균일한 난수이고 50% 확률로 NaN인 행렬 생성
행렬 = np.random.rand(행, 열)
행렬[np.random.rand(행, 열) < 0.5] = np.nan
# 행렬 출력
print(행렬)
(각 실행마다 결과가 다를 수 있습니다.)
[[nan 0.78431375 0.93879122]
[0.12345678 nan nan]
[0.43219876 nan 0.65432109]
[nan nan nan]
[nan 0.23456789 nan]]
대체 방법: Python과 NumPy를 사용하여 NaN으로 채워진 NumPy 행렬 생성
np.empty 함수 사용:
import numpy as np
행 = 5
열 = 3
# NaN으로 채워진 행렬 생성
행렬 = np.empty((행, 열))
행렬[:] = np.nan
# 행렬 출력
print(행렬)
np.empty
함수는 메모리 공간을 할당하지만 값을 초기화하지 않은 행렬을 생성합니다.[:]
슬라이싱을 사용하여 모든 원소를 NaN으로 설정합니다.
np.isnan 함수 사용:
import numpy as np
행 = 5
열 = 3
# 0으로 채워진 행렬 생성
행렬 = np.zeros((행, 열))
# NaN으로 변환
행렬[np.isnan(행렬)] = np.nan
# 행렬 출력
print(행렬)
np.isnan
함수는 각 원소가 NaN인지 확인합니다.
리스트 활용:
import numpy as np
행 = 5
열 = 3
# NaN으로 채워진 리스트 생성
리스트 = [np.nan] * (행 * 열)
# 리스트를 NumPy 행렬로 변환
행렬 = np.array(리스트).reshape((행, 열))
# 행렬 출력
print(행렬)
[np.nan] * (행 * 열)
표현식은np.nan
값으로 채워진 길이가행 * 열
인 리스트를 생성합니다.np.array
함수는 리스트를 NumPy 배열로 변환합니다.reshape
메서드는 배열을 원하는 모양(행, 열)으로 변형합니다.
주의 사항:
- 위 방법들은 모두 동일한 결과를 생성하지만 성능 측면에서 차이가 있을 수 있습니다.
- 특정 상황에 따라 어떤 방법이 가장 적합한지 판단해야 합니다.
python numpy