Python 希望将大小为(m,2)的numpy数组更改为格式为hh:mm AM/PM的时间戳
我在制作一个函数时遇到了困难,这个函数需要一个size=(m,2)的numpy数组,并生成一个小时和分钟的12小时格式时间戳。我想使用Python 希望将大小为(m,2)的numpy数组更改为格式为hh:mm AM/PM的时间戳,python,numpy,timestamp,Python,Numpy,Timestamp,我在制作一个函数时遇到了困难,这个函数需要一个size=(m,2)的numpy数组,并生成一个小时和分钟的12小时格式时间戳。我想使用from datetime import time库中的time() 知道 from datetime import time timestamp = time(13,15) print(timestamp.strftime('%I:%M %p')) 输出时间为下午01:15 我想取一个numpy数组,比如(其中大于24的数字为masm//24 a = np.
from datetime import time
库中的time()
知道
from datetime import time
timestamp = time(13,15)
print(timestamp.strftime('%I:%M %p'))
输出时间为下午01:15
我想取一个numpy数组,比如(其中大于24的数字为m
asm//24
a = np.array([[0,40],[13,20],[42,20]])
并具有函数的结果函数(数组)
be
function(a)
输出为时间戳列表
[12:40 AM, 1:20 PM, 6:20 PM]
虽然我想使用datetime
中的time
库,但我也愿意学习如何通过打印字符串来实现这一点
def convert_time(arr):
ret = []
am = 'A.M'
pm = 'P.M'
for i, j in enumerate(arr):
if arr[i][0] < 12:
if arr[i][0] == 0:
arr[i][0] += 12
ret.append(f"{arr[i][0]}:{arr[i][1]} {am}")
elif arr[i][0] > 24:
arr[i][0] = arr[i][0] % 24 - 12
ret.append(f"{arr[i][0]}:{arr[i][1]} {pm}")
elif arr[i][0] >= 12:
if arr[i][0] != 12:
arr[i][0] -= 12
ret.append(f"{arr[i][0]}:{arr[i][1]} {pm}")
return ret
输出:
['12:40 A.M', '1:20 P.M', '6:20 P.M']
输出:
['12:40 A.M', '1:20 P.M', '6:20 P.M']
我相信你的意思是
hrs>24->hrs%24
(获取剩余的小时数,而不是完整的天数)
这可以通过将时间转换函数应用于每一行来实现:
将numpy导入为np
从日期时间导入时间
def行到行时间(行):
返回时间(第[0]%24行,第[1]行)。strftime(“%I:%M%p”)
def阵列到阵列的时间(arr):
返回np。沿_轴应用_(行_到_时间,1,arr)
a=np.数组([[0,40],[13,20],[42,20])
打印(数组#到#次(a))#->['12:40 AM''01:20 PM''06:20 PM']
据我所知,要求为每一行创建一个字符串意味着您无法有意义地将其矢量化,因此这可能是您能得到的最好结果。我相信您的意思是
hrs>24->hrs%24
(获取剩余的小时数,而不是完整的天数)
这可以通过将时间转换函数应用于每一行来实现:
将numpy导入为np
从日期时间导入时间
def行到行时间(行):
返回时间(第[0]%24行,第[1]行)。strftime(“%I:%M%p”)
def阵列到阵列的时间(arr):
返回np。沿_轴应用_(行_到_时间,1,arr)
a=np.数组([[0,40],[13,20],[42,20])
打印(数组#到#次(a))#->['12:40 AM''01:20 PM''06:20 PM']
据我所知,要求为每一行创建一个字符串意味着你不能有意义地对其进行矢量化,因此这可能是你能得到的最好的结果。这太棒了,非常感谢!这太棒了,非常感谢!谢谢!我不知道
numpy。沿_轴应用_()
。谢谢!我不知道numpy。沿轴应用()。