Python의 NumPy에서 numpy.datetime_as_string() 메서드를 사용하면 날짜·시간(datetime) 배열을 문자열 배열로 손쉽게 변환할 수 있습니다. 이 메서드는 입력 배열과 동일한 형태(shape)의 문자열 배열을 반환합니다. 첫 번째 매개변수는 형식을 지정할 UTC 타임스탬프 배열이며, 'units' 매개변수를 통해 날짜 시간 단위를 지정하여 출력 정밀도를 조절할 수 있습니다.
변환 절차
먼저 필요한 라이브러리를 임포트합니다.
import numpy as np
datetime 배열을 생성합니다. dtype의 'M'은 datetime64 타입을 의미하며, 여기서는 분(m) 단위로 지정했습니다.
arr = np.arange('2022-02-20T02:10', 6*60, 60, dtype='M8[m]')이제 numpy.datetime_as_string() 메서드를 사용하여 datetime 배열을 문자열 배열로 변환합니다. unit 매개변수에 'm'을 전달해 분 단위까지 표시하도록 설정합니다.
print("\nResult...\n",np.datetime_as_string(arr, unit ='m'))전체 예제 코드
import numpy as np
# datetime 배열 생성
# dtype의 'M'은 datetime64 타입을 나타냄
arr = np.arange('2022-02-20T02:10', 6*60, 60, dtype='M8[m]')
# 배열 출력
print("Array...\n",arr)
# 데이터 타입 확인
print("\nArray datatype...\n",arr.dtype)
# 배열의 차원 확인
print("\nArray Dimensions...\n",arr.ndim)
# 배열의 형태(shape) 확인
print("\nOur Array Shape...\n",arr.shape)
# 배열의 요소 개수 확인
print("\nNumber of elements in the Array...\n",arr.size)
# numpy.datetime_as_string() 메서드로 datetime 배열을 문자열 배열로 변환
# 이 메서드는 입력 배열과 동일한 형태의 문자열 배열을 반환함
print("\nResult...\n",np.datetime_as_string(arr, unit ='m'))실행 결과
Array... ['2022-02-20T02:10' '2022-02-20T03:10' '2022-02-20T04:10' '2022-02-20T05:10' '2022-02-20T06:10' '2022-02-20T07:10'] Array datatype... datetime64[m] Array Dimensions... 1 Our Array Shape... (6,) Number of elements in the Array... 6 Result... ['2022-02-20T02:10' '2022-02-20T03:10' '2022-02-20T04:10' '2022-02-20T05:10' '2022-02-20T06:10' '2022-02-20T07:10']
실행 결과를 보면 원본 배열의 각 datetime 요소가 분 단위 정밀도('YYYY-MM-DDThh:mm')를 가진 문자열로 그대로 변환된 것을 확인할 수 있습니다. 이처럼 unit 매개변수 값을 's'(초), 'D'(일) 등으로 변경하면 원하는 정밀도로 출력 형식을 자유롭게 조정할 수 있습니다.