Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

แปลงอาร์เรย์ของวันที่และเวลาเป็นอาร์เรย์ของสตริงด้วยวัตถุเขตเวลา pytz ใน Python


ในการแปลงอาร์เรย์ของ datetimes เป็นอาร์เรย์ของสตริง ให้ใช้เมธอด numpy.datetime_as_string() ใน Python Numpy วิธีการส่งคืนอาร์เรย์ของสตริงที่มีรูปร่างเหมือนกับอาร์เรย์อินพุต พารามิเตอร์แรกคืออาร์เรย์ของการประทับเวลา UTC ที่จะจัดรูปแบบ

พารามิเตอร์ที่สองคือ "เขตเวลา" ซึ่งเป็นข้อมูลเขตเวลาที่จะใช้เมื่อแสดงวันที่และเวลา ถ้า 'UTC' ให้ลงท้ายด้วย Z เพื่อระบุเวลา UTC หากเป็น "ท้องถิ่น" ให้แปลงเป็นเขตเวลาท้องถิ่นก่อน แล้วต่อท้ายด้วยค่าชดเชยเขตเวลา +-#### หากเป็นวัตถุ tzinfo ให้ทำเช่นเดียวกับ "ท้องถิ่น" แต่ใช้เขตเวลาที่ระบุ

ขั้นตอน

ขั้นแรก ให้นำเข้าไลบรารีที่จำเป็น สำหรับเขตเวลา pytz เราได้นำเข้าไลบรารี 'pytz' -

import numpy as np
import pytz

สร้างอาร์เรย์ของวันที่และเวลา ประเภท 'M' ระบุวันที่และเวลา -

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)

ในการแปลงอาร์เรย์ของ datetimes เป็นอาร์เรย์ของสตริง ให้ใช้เมธอด numpy.datetime_as_string() วิธีการส่งคืนอาร์เรย์ของสตริงที่มีรูปร่างเหมือนกับอาร์เรย์อินพุต -

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

ตัวอย่าง

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

ผลลัพธ์

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