【发布时间】:2019-12-23 12:19:11
【问题描述】:
我有两个保存日期和时间的 numpy 数组。每天的时间不一定匹配,所以我需要运行以检查以找到匹配的匹配项。
因此,我目前创建了一个简单的 UDF,它返回通过的日期的时间。但这需要很长时间,因为数组很大。
以下是我当前的代码,我已将其分解为基本原则:
import numpy as np
#my arrays
arr1 = np.array([[20/12/2019, 16:00], [21/12/2019, 12:00], [22/12/2019, 15:00]])
arr2 = np.array([[20/12/2019, 16:00], [21/12/2019, 15:00], [22/12/2019, 16:00]])
#udf
def get_time(index_date):
for i in range(arr2.shape[0]-1):
if arr2[i,0] == index_date:
return arr2[i,1]
break
#loop through main data
for i in range(arr1.shape[0]-1):
if arr1[i,1] = get_time(arr1[i,0]):
print('match')
break
上述方法有效,但相当缓慢且繁琐。我知道还有类似下面的内容:
if value in my_array[:, col_num]:
但这不会返回相邻时间,它只会检查日期是否存在。
我的问题:
找到索引后,循环遍历 numpy 数组以返回相邻值的最快方法是什么?
【问题讨论】:
-
如果日期是唯一的,为什么不设置两个pandas数据框并在日期列上合并它们?
-
你的数组的元素是字符串还是日期时间?
-
它们是类型字符串@Kalpit