Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python NumPy에서 UTC 시간대를 적용해 datetime 배열을 문자열 배열로 변환하는 방법

Python NumPy에서 numpy.datetime_as_string() 메서드를 사용하면 datetime 배열을 문자열 배열로 손쉽게 변환할 수 있습니다. 이 메서드는 입력 배열과 동일한 형태(shape)의 문자열 배열을 반환합니다.

첫 번째 매개변수는 형식화할 UTC 타임스탬프 배열이며, 두 번째 매개변수인 timezone은 datetime을 표시할 때 사용할 시간대 정보입니다. 'UTC'로 지정하면 각 값이 UTC 시간임을 나타내는 접미사 Z가 붙습니다. 'local'로 지정하면 먼저 현지 시간대로 변환한 뒤 ±#### 형태의 시간대 오프셋이 추가되고, tzinfo 객체를 전달하면 해당 시간대 기준으로 변환됩니다.

단계별 진행 과정

1. 필요한 라이브러리 임포트

import numpy as np

2. datetime 배열 생성

dtype으로 'M' 타입을 지정하면 datetime 배열을 만들 수 있습니다.

arr = np.arange('2022-02-20T03:25', 6*60, 60, dtype='M8[m]')

3. 배열 정보 확인

생성된 배열과 데이터 타입, 차원, 형태, 요소 개수를 출력해 확인합니다.

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)

4. datetime 배열을 문자열 배열로 변환

numpy.datetime_as_string() 메서드에 timezone='UTC' 옵션을 지정하여 호출합니다.

print("\nResult...\n", np.datetime_as_string(arr, timezone='UTC'))

전체 예제 코드

import numpy as np

# datetime 배열 생성 ('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)

# datetime 배열을 문자열 배열로 변환 (UTC 시간대 적용)
print("\nResult...\n", np.datetime_as_string(arr, timezone='UTC'))

실행 결과

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-20T03:25Z' '2022-02-20T04:25Z' '2022-02-20T05:25Z'
 '2022-02-20T06:25Z' '2022-02-20T07:25Z' '2022-02-20T08:25Z']

실행 결과를 보면 각 datetime 값 뒤에 Z가 붙어 해당 시간이 UTC 기준임을 명확하게 나타내는 것을 확인할 수 있습니다. 이처럼 numpy.datetime_as_string() 메서드는 로그 기록, 데이터 직렬화, API 응답 생성 등 시간 정보를 표준화된 문자열 형식으로 다루어야 할 때 매우 유용하게 활용됩니다.