我有兩個不同時間的溫度陣列!
x = array(['1999-03-06T12:00:00.000000000', '1999-03-07T12:00:00.000000000',
'1999-03-08T12:00:00.000000000', ..., '2021-10-09T12:00:00.000000000',
'2021-10-10T12:00:00.000000000', '2021-10-11T12:00:00.000000000'],
dtype='datetime64[ns]')
這是從 1999 年到 2021 年的日常
y = array(['2002-07-22T09:03:54.000000000', '2004-11-03T12:36:57.000000000',
'2004-11-04T05:19:08.000000000', '2004-12-13T11:50:36.000000000',
'2005-06-07T13:16:41.000000000', '2006-07-12T12:31:53.000000000',
'2006-07-22T11:43:24.000000000', '2006-09-10T14:08:57.000000000',...]
這個是2002年到2021年的隨機
我想知道如何在 x(每天)中只選擇y 中包含的日期(所以 x 和 y 將具有相同的日期)
uj5u.com熱心網友回復:
你可以intersect1d在numpy中嘗試方法。
import numpy as np
array_common_dates = np.intersect1d(x, y)
uj5u.com熱心網友回復:
對于較大的陣列,排序查找將比線性查找更快:
# if x is not sorted, fix it
ind = np.searchsorted(x, y)
mask = ind < x.size
mask[mask] &= y[mask] == x[ind[mask]]
這種方法的另一個優點是它為您提供了一種僅標記元素匹配的雙向映射:
y[mask] == x[ind[mask]]
uj5u.com熱心網友回復:
也許你可以做這樣的事情
x = ['1999-03-06T12:00:00.000000000', '1999-03-07T12:00:00.000000000',
'1999-03-08T12:00:00.000000000', '2021-10-09T12:00:00.000000000',
'2021-10-10T12:00:00.000000000', '2021-10-11T12:00:00.000000000']
y = ['1999-03-06T12:00:00.000000001', '1999-03-07T12:00:00.00000004',
'1999-03-08T12:00:00.000000002', '2021-10-09T12:00:00.000001004',
'2021-10-10T12:00:00.000000003', '2021-10-11T12:00:00.000002004']
z = []
for i in x:
n = i.find('T')
z.append(i[:n])
new_list = []
for i in z:
for j in y:
if i in j:
new_list.append(j)
print(new_list)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/347354.html
