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

Python NumPy에서 단위(unit)를 지정해 날짜·시간 배열을 문자열 배열로 변환하기

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

첫 번째 매개변수는 형식화할 UTC 타임스탬프 배열이며, units 매개변수를 통해 날짜·시간의 정밀도(단위)를 지정할 수 있습니다. 이번 예제에서는 초(seconds) 단위를 전달하겠습니다.

진행 단계

먼저 필요한 라이브러리를 임포트합니다 −

import numpy as np

날짜·시간 배열을 생성합니다. dtype의 'M'은 datetime64 타입을 의미합니다 −

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

배열을 출력합니다 −

print("Array...\n",arr)

배열의 데이터 타입(dtype)을 확인합니다 −

print("\nArray datatype...\n",arr.dtype)

배열의 차원(ndim)을 확인합니다 −

print("\nArray Dimensions...\n",arr.ndim)

배열의 형태(shape)를 확인합니다 −

print("\nOur Array Shape...\n",arr.shape)

배열에 포함된 요소 개수(size)를 확인합니다 −

print("\nNumber of elements in the Array...\n",arr.size)

# numpy.datetime_as_string() 메서드를 사용하여 날짜·시간 배열을 문자열 배열로 변환합니다

# 이 메서드는 입력 배열과 동일한 형태의 문자열 배열을 반환합니다 −

print("\nResult...\n",np.datetime_as_string(arr, unit ='s'))

전체 예제 코드

import numpy as np

# 날짜·시간 배열 생성
# dtype의 'M'은 datetime 타입을 나타냄
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)

# 배열의 형태 확인
print("\nOur Array Shape...\n",arr.shape)

# 배열의 요소 개수 확인
print("\nNumber of elements in the Array...\n",arr.size)

# numpy.datetime_as_string() 메서드를 사용해 날짜·시간 배열을 문자열 배열로 변환
# 입력 배열과 동일한 형태의 문자열 배열이 반환됨
# 첫 번째 매개변수는 형식화할 UTC 타임스탬프 배열
# units 매개변수는 날짜·시간의 정밀도를 설정하며, 여기서는 초 단위를 사용
print("\nResult...\n",np.datetime_as_string(arr, unit ='s'))

실행 결과

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:00' '2022-02-20T03:10:00' '2022-02-20T04:10:00'
'2022-02-20T05:10:00' '2022-02-20T06:10:00' '2022-02-20T07:10:00']