Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 查找两个日期时间数组之间的重复日期_Python_Arrays_Datetime - Fatal编程技术网

Python 查找两个日期时间数组之间的重复日期

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

我有两个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.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)