2017-08-26 12 views
2

日時配列は2つあり、両方の配列間で繰り返される日付だけの配列を出力しようとしています。これは私自身が答えることができるはずですしかし、私は検索に多くの時間を費やしており、私はこれを解決する方法を理解していません。2つの日時配列の間に繰返し日付があります

>>> 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) 

私はこれを以下の試してみたが、これは私がちょうどdatetime1でとDATETIME2の値を反復し、封じ込めのためのチェックだと思い

>>> np.where(datetime1==datetime2) 
(array([], dtype=int64),) 

答えて

1

この:

datetime1==datetime2 

要素単位の比較です。 [0]と[0]を比較し、[1]と[1]を比較し、ブール値の配列を返します。

代わりに、試してみてください。

np.in1d(datetime1, datetime2) 

をこれはあなたにDATETIME2に存在し、それらの要素をtrueに設定しと同じサイズを、ブール配列を与えます。あなたの目標はではなくインデックスを取得するだけであれば

、これを使用する:numpyの中にループの場合

np.intersect1d(datetime1, datetime2) 

https://docs.scipy.org/doc/numpy/reference/generated/numpy.intersect1d.html

2

機能しない理由を私はまだ理解していません。ですから、例えば:

for date in datetime1: 
    if date in datetime2: 
     print(date) 
+0

は通常、貧しいソリューションです。 –

関連する問題