python - 写了一点时间增量函数,并希望将结果捕获为一个 numpy 数组
问题描述
我编写了一些代码,其中包含两个 data_dict 列表,一个包含开放时间,一个包含关闭时间。
函数找出这两个时间之间的差异并返回一个以小时 XX 小时为单位的数字。
如果列表中的打开和关闭时间格式不正确 (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 循环完成后,您可以使用 将列表转换为 numpy 数组np.array()
,然后打印出该数组以确保它看起来正常。
以下是我认为它应该看起来的样子:
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)
希望这可以帮助 :)
推荐阅读
- java - 第二个按钮不起作用
- ruby-on-rails - 在根级别运行 rails 命令“rails _5.1.0_ new test1”时出错
- php - 使用 PHP 强制下载图像的对话框
- c# - 将选项卡导航限制为 UI 元素
- javascript - 为什么在 Vue js 中尝试从 firebase 检索令牌时出现错误?
- ruby-on-rails - 将 ROR 日历同步到 Google 日历
- java - 如何在每次列表视图单击时在 sharedpreferences 中创建新的 SharedPreferences?
- jenkins - Sonarqube PLSQL 自定义规则,用于在 SQL 脚本文件中检测正确的 SQL 终止符分号
- webpack - Webpack 4 只生成 css
- regex - 替换字符串的前四个字符