Python 编写了一个小的时间增量函数,希望将结果捕获为numpy数组
我写了一些代码,其中包含两个数据列表,一个包含开始时间,另一个包含结束时间 函数查找这两个时间之间的差异,并以小时X.X小时为单位返回一个数字 如果列表中的打开和关闭时间格式不正确(00:00:00),则函数返回“-1” 它工作得很好,但是我希望能够捕获结果并将其保存为numpy数组 结果是这样打印的Python 编写了一个小的时间增量函数,希望将结果捕获为numpy数组,python,numpy,datetime,Python,Numpy,Datetime,我写了一些代码,其中包含两个数据列表,一个包含开始时间,另一个包含结束时间 函数查找这两个时间之间的差异,并以小时X.X小时为单位返回一个数字 如果列表中的打开和关闭时间格式不正确(00:00:00),则函数返回“-1” 它工作得很好,但是我希望能够捕获结果并将其保存为numpy数组 结果是这样打印的 X Y Z A X etc... 我对python非常陌生,只需要一些指导 谢谢各位 opening_time_arr = data_dict['Open'] closing_time_arr
X
Y
Z
A
X
etc...
我对python非常陌生,只需要一些指导
谢谢各位
opening_time_arr = data_dict['Open']
closing_time_arr = data_dict['Close']
if len(opening_time_arr) == len(closing_time_arr):
resultTime = []
for idx, closing_time in enumerate(closing_time_arr):
try:
FORMAT = '%H:%M:%S'
tdelta = datetime.strptime(closing_time, FORMAT) - datetime.strptime(opening_time_arr[idx], FORMAT)
resultTime.append(tdelta)
tdelta_h = tdelta.total_seconds()/3600
print(tdelta_h)
except ValueError:
print('-1')
函数返回
8.0
8.5
6.5
7.5
等等。。。大约有250个条目
我怎样才能把这些数字转换成一个numpy数组,而不用像我现在的代码那样打印结果。奥利弗-我想你真的很接近了!如果
tdelta_h
是以小时为单位的输出,那么这就是您想要添加到resultTime
的内容。for循环完成后,您可以使用np.array()
将列表转换为numpy数组,然后打印出数组,以确保它看起来正常
以下是我认为它应该是什么样子:
import numpy as np
opening_time_arr = data_dict['Open']
closing_time_arr = data_dict['Close']
if len(opening_time_arr) == len(closing_time_arr):
resultTime = []
for idx, closing_time in enumerate(closing_time_arr):
try:
FORMAT = '%H:%M:%S'
tdelta = (datetime.strptime(closing_time, FORMAT) - datetime.strptime(opening_time_arr[idx], FORMAT))
tdelta_h = tdelta.total_seconds()/3600
resultTime.append(tdelta_h)
except ValueError:
resultTime.append(-1)
np.array(resultTime)
print(resultTime)
希望这能有所帮助:)将它们累积到一个列表中,然后对其进行一系列处理。正如我所说的,python新手。我不知道该怎么做。我花了好几个小时才写出来。什么是
resultTime
?如果我这样做,那么它捕获的只是时间增量,而不是值。。。数组([datetime.timedelta(秒=28800)、datetime.timedelta(秒=30600)、datetime.timedelta(秒=23400)等…如何转换为小时?