我正在尝试使用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)
添加回答
举报
0/150
提交
取消