Computer >> Máy Tính >  >> Lập trình >> Python

Chuyển đổi một mảng ngày giờ thành một mảng chuỗi với đối tượng múi giờ pytz trong Python

Để chuyển đổi một mảng ngày giờ thành một mảng chuỗi, hãy sử dụng phương thức numpy.datetime_as_string () trong Python Numpy. Phương thức trả về một mảng chuỗi có hình dạng giống như mảng đầu vào. Tham số đầu tiên là mảng dấu thời gian UTC để định dạng.

Tham số thứ hai là "múi giờ", thông tin về Múi giờ để sử dụng khi hiển thị ngày giờ. Nếu 'UTC', hãy kết thúc bằng chữ Z để biểu thị thời gian UTC. Nếu là 'cục bộ', hãy chuyển đổi sang múi giờ địa phương trước tiên và hậu tố có độ lệch múi giờ + - ####. Nếu một đối tượng tzinfo, thì hãy làm như với 'local', nhưng sử dụng múi giờ được chỉ định.

Các bước

Lúc đầu, hãy nhập các thư viện cần thiết. Đối với múi giờ pytz, chúng tôi đã nhập thư viện 'pytz' -

import numpy as np
import pytz

Tạo một mảng ngày giờ. Loại 'M' chỉ định ngày giờ -

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

Hiển thị mảng của chúng tôi -

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

Nhận loại dữ liệu -

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

Nhận các kích thước của Mảng -

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

Nhận hình dạng của Mảng -

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

Nhận số phần tử của Mảng -

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

Để chuyển đổi một mảng ngày giờ thành một mảng chuỗi, hãy sử dụng phương thức numpy.datetime_as_string (). Phương thức trả về một mảng chuỗi có cùng hình dạng với mảng đầu vào -

print("\nResult...\n",np.datetime_as_string(arr, timezone=pytz.timezone('US/Eastern')))

Ví dụ

import numpy as np
import pytz

# Create an array of datetime
# The 'M' type specifies datetime
arr = np.arange('2022-02-20T03:25', 6*60, 60, dtype='M8[m]')

# Displaying our array
print("Array...\n",arr)

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

# Get the dimensions of the Array
print("\nArray Dimensions...\n",arr.ndim)

# Get the shape of the Array
print("\nOur Array Shape...\n",arr.shape)

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

# To convert an array of datetimes into an array of strings, use the numpy.datetime_as_string() method in Python Numpy
# The method returns an array of strings the same shape as the input array
print("\nResult...\n",np.datetime_as_string(arr, timezone=pytz.timezone('US/Eastern')))

Đầu ra

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']