NumPy에서는 astype(data_type) 메서드를 사용해 배열의 데이터 타입을 손쉽게 변경할 수 있습니다. 예를 들어 float64 타입의 NumPy 배열이 있다면, astype() 메서드에 원하는 데이터 타입을 인자로 전달하는 것만으로 int32 등 다른 타입으로 변환할 수 있습니다.
또한 NumPy 배열의 현재 데이터 타입은 dtype 속성을 통해 확인할 수 있습니다. 먼저 샘플 배열의 데이터 타입을 조회하는 예제부터 살펴보겠습니다.
배열의 데이터 타입 확인하기
# numpy 라이브러리 임포트 import numpy as np # numpy 배열 생성 array = np.array([1, 2, 3, 4, 5]) # numpy 배열의 데이터 타입 출력 print(array.dtype)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
int32
astype()로 float64를 int32로 변환하기
이번에는 실제로 float64 타입의 배열을 int32 타입으로 변경하는 과정을 살펴보겠습니다.
# numpy 라이브러리 임포트
import numpy as np
# float64 타입의 numpy 배열 생성
array = np.array([1.5, 2.6, 3.7, 4.8, 5.9])
# 변경 전 배열의 타입 출력
print(f'변경 전: {array.dtype}')
# astype() 메서드로 numpy 배열의 데이터 타입 변경
array = array.astype(np.int32)
# 변경 후 배열의 타입 출력
print(f'변경 후: {array.dtype}')실행 결과
위 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.
변경 전: float64 변경 후: int32
참고 사항
NumPy 모듈에서 제공하는 모든 데이터 타입뿐만 아니라 파이썬의 기본 데이터 타입도 사용할 수 있습니다. NumPy에서 지원하는 전체 데이터 타입 목록은 공식 문서에서 확인할 수 있습니다.
한 가지 주의할 점은, 위 예제처럼 부동소수점(float) 배열을 정수(int)로 변환하면 소수점 이하 값이 버려진다는 점입니다. 따라서 데이터 변환 시 값의 손실 여부를 반드시 고려해야 합니다.
마무리
이번 튜토리얼에서는 NumPy 배열의 데이터 타입을 dtype 속성으로 확인하고, astype() 메서드를 이용해 원하는 타입으로 변환하는 방법을 알아보았습니다. 학습 중 궁금한 점이나 문제가 있다면 댓글로 남겨주세요.