首页 > 解决方案 > 使用 numpy Python 过滤日期时间索引

问题描述

该函数delta_s计算每个时间间隔之间的时间差(以秒为单位)。例如,以秒为单位的时间差'2017-09-15T07:11:00.000000000','2017-09-15T11:25:00.000000000'是 15240 秒。我想编写一个过滤函数,它只delta_s显示指定数组的间隔。所以对于第一个索引,它会显示它与它之后的索引之间的时间差,即 2760。但是对于最后一个索引,它之后没有其他日期,所以它没有任何输出。导致整个输出。我怎样才能编写这样一个函数来满足预期结果?Newdate1Newdate2delta_sNewdateNewdate2'2017-09-15T11:25:00.000000000''2017-09-15T12:11:00.000000000'Newdate2'2017-12-22T03:56:00.000000000'Setups[2760]

import numpy as np
Setups= np.array(['2017-09-15T07:11:00.000000000','2017-09-15T11:25:00.000000000',
 '2017-09-15T12:11:00.000000000', '2017-12-22T03:14:00.000000000',
 '2017-12-22T03:26:00.000000000', '2017-12-22T03:31:00.000000000',
 '2017-12-22T03:56:00.000000000'],dtype="datetime64[ns]")

#Calculates the difference each date in Setups in seconds 
delta_s = np.array([np.timedelta64(td, 's') for td in np.diff(Setups)])
 
Newdate1 =  np.array(['2017-09-15T07:11:00.000000000', '2017-12-22T03:31:00.000000000'],dtype="datetime64[ns]")
Newdate2 =  np.array(['2017-09-15T11:25:00.000000000', '2017-12-22T03:56:00.000000000'],dtype="datetime64[ns]")

delta_s 输出:

[  15240    2760 8434980     720     300    1500]

预期输出:

Newdate1: [15240 1500]
Newdate2: [2760]

标签: arrayspython-3.xnumpydatetimetime

解决方案


推荐阅读