为了账号安全,请及时绑定邮箱和手机立即绑定

将 np.gradient 与日期时间一起使用

将 np.gradient 与日期时间一起使用

紫衣仙女 2022-04-27 13:45:11
我正在尝试使用np.gradient关于时间的导数,但np.gradient在使用 datetime 对象时会引发错误。我想使用它,np.gradient因为它可以保存形状,但不知道如何解决这个错误。我无法在 3 小时内设置一个恒定的 dt,因为我的时间数据间隔不规则,而我发现的唯一其他类似问题没有解决方案。下面是一些示例数据import numpy as npimport datetime as dty = np.array([10.,12.,11.,15.,16.,20.])times = np.array([dt.datetime(2019,10,1,12,3),dt.datetime(2019,10,1,12,40),dt.datetime(2019,10,1,14,5),                  dt.datetime(2019,10,1,18,7),dt.datetime(2019,10,1,22,8),dt.datetime(2019,10,2,1,3)])np.gradient(y,times)输出应该是 d(y)/d(times) 的数组
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

我们需要转换times成更简单的 dtype,numpy 可以更轻松地使用它。一种方法是先转换为datetime64[s],然后再转换为int64. 一旦我们这样做了,我们就可以调用梯度。结果将以每秒为单位。


time_seconds = times.astype('datetime64[s]').astype('int64')


np.gradient(y, time_seconds)


查看完整回答
反对 回复 2022-04-27
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信