NumPy에서 numpy.datetime_as_string() 메서드를 사용하면 datetime 배열을 손쉽게 문자열 배열로 변환할 수 있습니다. 이 메서드는 입력 배열과 동일한 형태(shape)의 문자열 배열을 반환하며, 첫 번째 매개변수로는 형식화할 UTC 타임스탬프 배열을 전달합니다.
두 번째 매개변수는 "timezone"으로, datetime을 표시할 때 적용할 시간대 정보를 의미합니다.
- 'UTC': UTC 시간을 나타내는 접미사 Z가 붙습니다.
- 'local': 먼저 현지 시간대로 변환한 후, +-#### 형식의 시간대 오프셋이 접미사로 붙습니다.
- tzinfo 객체: 'local'과 동일하게 처리되지만, 지정된 시간대 기준으로 변환됩니다.
구현 단계
먼저 필요한 라이브러리를 임포트합니다. pytz 타임존을 사용하기 위해 'pytz' 라이브러리를 함께 불러옵니다.
import numpy as np
import pytz
다음으로 datetime 배열을 생성합니다. dtype의 'M'은 datetime 유형을 나타냅니다.
arr = np.arange('2022-02-20T03:25', 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, timezone=pytz.timezone('US/Eastern')))전체 예제 코드
import numpy as np
import pytz
# datetime 배열 생성
# dtype의 'M'은 datetime 유형을 의미
arr = np.arange('2022-02-20T03:25', 6*60, 60, dtype='M8[m]')
# 배열 출력
print("Array...\n",arr)
# 데이터 타입 확인
print("\nArray datatype...\n",arr.dtype)
# 배열의 차원 확인
print("\nArray Dimensions...\n",arr.ndim)
# 배열의 형태 확인
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, timezone=pytz.timezone('US/Eastern')))
실행 결과
Array...
['2022-02-20T03:25' '2022-02-20T04:25' '2022-02-20T05:25'
'2022-02-20T06:25' '2022-02-20T07:25' '2022-02-20T08:25']
Array datatype...
datetime64[m]
Array Dimensions...
1
Our Array Shape...
(6,)
Number of elements in the Array...
6
Result...
['2022-02-19T22:25-0500' '2022-02-19T23:25-0500' '2022-02-20T00:25-0500'
'2022-02-20T01:25-0500' '2022-02-20T02:25-0500' '2022-02-20T03:25-0500']
실행 결과를 보면 US/Eastern(동부 표준시) 시간대가 적용되어 원래 UTC 기준 시각에서 5시간이 차감되고, 각 값에 '-0500' 오프셋이 접미사로 붙은 것을 확인할 수 있습니다.