Python 计算前X秒数的日期时间
我正在尝试编写一个函数,它在给定的_日期之前用x秒计算日期间隔。上一个日期的每个索引都是给定日期之前的时间(以秒为单位) 预期产量 [2017-09-15 11:39:00 2017-09-15 11:38:00 2017-09-15 10:40:30]Python 计算前X秒数的日期时间,python,numpy,datetime,timedelta,Python,Numpy,Datetime,Timedelta,我正在尝试编写一个函数,它在给定的_日期之前用x秒计算日期间隔。上一个日期的每个索引都是给定日期之前的时间(以秒为单位) 预期产量 [2017-09-15 11:39:00 2017-09-15 11:38:00 2017-09-15 10:40:30] 90秒不是日期或时间,因此不是np.datetime64-它是一个时间段,因此是一个时间段。这里是np.array[901503600]中的'm','m': @forcebru提供的解决方案效果很好,我只想在此指出另外两件事: import
90秒不是日期或时间,因此不是np.datetime64-它是一个时间段,因此是一个时间段。这里是np.array[901503600]中的'm','m':
@forcebru提供的解决方案效果很好,我只想在此指出另外两件事:
import numpy as np
given_date = np.datetime64('2017-09-15 11:40:30')
previous_dates = np.array([90, 150, 3600]) # since it's just seconds, no 'm' needed
print(given_date - previous_dates) # @forcebru solution still works
# you just subtract seconds, so that works, but if you'd want to do something else
fdates = np.vectorize(lambda d: given_date - np.timedelta64(d, 's'))
result = fdates(previous_dates)
print(result)
第二部分给出了相同的结果,但当然可以在lambda中做不同的事情,或者稍微复杂一些
因为你只是在减去秒,你也可以使用更简单的解决方案,你甚至不需要'm'指示,因为当从时间中减去时,整数将被解释为秒
而且,由于您通常不想也不应该让lambdas留在身边,因此可以保存一行:
result = np.vectorize(lambda d: given_date - np.timedelta64(d, 's'))(previous_dates)
print(result)
当然,也可以跳过作业直接打印结果
import numpy as np
given_date = np.datetime64('2017-09-15 11:40:30')
previous_dates = np.array([90, 150, 3600]) # since it's just seconds, no 'm' needed
print(given_date - previous_dates) # @forcebru solution still works
# you just subtract seconds, so that works, but if you'd want to do something else
fdates = np.vectorize(lambda d: given_date - np.timedelta64(d, 's'))
result = fdates(previous_dates)
print(result)
result = np.vectorize(lambda d: given_date - np.timedelta64(d, 's'))(previous_dates)
print(result)