Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chuyển đổi mảng datetime thành mảng chuỗi với đối tượng timezone pytz trong Python


Để chuyển đổi mảng datetime thành mảng chuỗi, sử dụng numpy.datetime_as_string() trong NumPy Python. Phương thức trả về mảng chuỗi cùng shape với mảng đầu vào. Tham số đầu tiên là mảng timestamp UTC cần định dạng.

Tham số thứ hai là timezone: thông tin timezone khi hiển thị datetime. Nếu 'UTC', kết thúc bằng Z. Nếu 'local', chuyển sang timezone local và thêm offset. Nếu đối tượng tzinfo, làm như 'local' nhưng dùng timezone chỉ định.

Các bước

Nhập thư viện (bao gồm pytz):

import numpy as np
import pytz

Tạo mảng datetime (kiểu 'M' chỉ định datetime):

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

Hiển thị mảng:

print("Mảng...\n", arr)

Lấy kiểu dữ liệu:

print("\nKiểu dữ liệu mảng...\n", arr.dtype)

Lấy số chiều:

print("\nSố chiều mảng...\n", arr.ndim)

Lấy shape:

print("\nShape mảng...\n", arr.shape)

Lấy số phần tử:

print("\nSố phần tử trong mảng...\n", arr.size)

Chuyển đổi datetime thành chuỗi với timezone US/Eastern:

print("\nKết quả...\n", np.datetime_as_string(arr, timezone=pytz.timezone('US/Eastern')))

Ví dụ hoàn chỉnh

import numpy as np
import pytz
arr = np.arange('2022-02-20T03:25', 6*60, 60, dtype='M8[m]')
print("Mảng...\n", arr)
print("\nKiểu dữ liệu mảng...\n", arr.dtype)
print("\nSố chiều mảng...\n", arr.ndim)
print("\nShape mảng...\n", arr.shape)
print("\nSố phần tử trong mảng...\n", arr.size)
print("\nKết quả...\n", np.datetime_as_string(arr, timezone=pytz.timezone('US/Eastern')))

Kết quả

Mảng...
['2022-02-20T03:25' '2022-02-20T04:25' '2022-02-20T05:25' '2022-02-20T06:25' '2022-02-20T07:25' '2022-02-20T08:25']
Kiểu dữ liệu mảng... datetime64[m]
Số chiều mảng... 1
Shape mảng... (6,)
Số phần tử trong mảng... 6
Kết quả...
['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']