Python 查找两个日期时间数组之间的重复日期
我有两个datetime数组,我试图输出一个数组,其中只包含两个数组之间重复的日期。。我觉得这是我应该能够回答自己的问题,但我花了很多时间寻找,我不知道如何解决这个问题Python 查找两个日期时间数组之间的重复日期,python,arrays,datetime,Python,Arrays,Datetime,我有两个datetime数组,我试图输出一个数组,其中只包含两个数组之间重复的日期。。我觉得这是我应该能够回答自己的问题,但我花了很多时间寻找,我不知道如何解决这个问题 >>> datetime1[0:4] array([datetime.datetime(2014, 6, 19, 4, 0), datetime.datetime(2014, 6, 19, 5, 0), datetime.datetime(2014, 6, 19, 6, 0), datetime.dateti
>>> datetime1[0:4]
array([datetime.datetime(2014, 6, 19, 4, 0),
datetime.datetime(2014, 6, 19, 5, 0),
datetime.datetime(2014, 6, 19, 6, 0),
datetime.datetime(2014, 6, 19, 7, 0)], dtype=object)
>>> datetime2[0:4]
array([datetime.datetime(2014, 6, 19, 3, 0),
datetime.datetime(2014, 6, 19, 4, 0),
datetime.datetime(2014, 6, 19, 5, 0),
datetime.datetime(2014, 6, 19, 6, 0)], dtype=object)
我在下面尝试过这个,但我仍然不明白为什么它不起作用
>>> np.where(datetime1==datetime2)
(array([], dtype=int64),)
我想说的是,只需迭代datetime1和datetime2的值,并检查是否包含。例如:
for date in datetime1:
if date in datetime2:
print(date)
这:
这是一个元素级的比较。它将[0]与[0]进行比较,然后将[1]与[1]进行比较,并给出一个布尔数组
相反,请尝试:
np.in1d(datetime1, datetime2)
这将为您提供一个与datetime1
大小相同的布尔数组,对于存在于datetime2中的那些元素,将其设置为True
如果您的目标只是获取值而不是索引,请使用以下方法:
np.intersect1d(datetime1, datetime2)
NumPy中的For循环通常是一个糟糕的解决方案。
np.intersect1d(datetime1, datetime2)