Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 编写了一个小的时间增量函数,希望将结果捕获为numpy数组_Python_Numpy_Datetime - Fatal编程技术网

Python 编写了一个小的时间增量函数,希望将结果捕获为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.X小时为单位返回一个数字

如果列表中的打开和关闭时间格式不正确(00:00:00),则函数返回“-1”

它工作得很好,但是我希望能够捕获结果并将其保存为numpy数组

结果是这样打印的

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)等…如何转换为小时?