Python 在numpy数组中返回相邻值的最快方法
我有两个保存日期和时间的numpy数组。每天的时间不一定匹配,所以我需要仔细检查,以找到匹配的时间 因此,我目前创建了一个简单的UDF,它返回经过的日期的时间。但这需要很长时间,因为阵列相当大 以下是我当前的代码,我将其分解为基本原则:Python 在numpy数组中返回相邻值的最快方法,python,arrays,numpy,Python,Arrays,Numpy,我有两个保存日期和时间的numpy数组。每天的时间不一定匹配,所以我需要仔细检查,以找到匹配的时间 因此,我目前创建了一个简单的UDF,它返回经过的日期的时间。但这需要很长时间,因为阵列相当大 以下是我当前的代码,我将其分解为基本原则: 将numpy导入为np #我的数组 arr1=np.数组([[20/12/2019,16:00]、[21/12/2019,12:00]、[22/12/2019,15:00]) arr2=np.数组([[20/12/2019,16:00]、[21/12/2019,
将numpy导入为np
#我的数组
arr1=np.数组([[20/12/2019,16:00]、[21/12/2019,12:00]、[22/12/2019,15:00])
arr2=np.数组([[20/12/2019,16:00]、[21/12/2019,15:00]、[22/12/2019,16:00])
#自由民主党
def获取时间(索引日期):
对于范围内的i(arr2.形状[0]-1):
如果arr2[i,0]==索引日期:
返回arr2[i,1]
打破
#循环浏览主要数据
对于范围内的i(arr1.形状[0]-1):
如果arr1[i,1]=获取时间(arr1[i,0]):
打印('匹配')
打破
上述方法可以工作,但速度很慢,而且很麻烦。我知道也有类似的情况:
如果my_数组中的值[:,col_num]:
但这不会返回相邻的时间,它只会检查是否存在日期
我的问题:
找到索引后,通过numpy数组循环返回相邻值的最快方法是什么?这是一种变通方法,只有在无法使用Rafael的解决方案时才有用。我们替换临时数组中的日期,以检查哪些坐标具有自定义值 你可以用
for row in np.array(np.where(np.core.defchararray.replace(p,old="21/12/2019",new="")==''))[0]:
#Prints time where date == 21/12/2019
print(p[row,1])
这将找到目标日期的行坐标,这可以得到下一列,在您的情况下是时间。检查多个值、迭代要检查的值并替换内部旧值是很简单的。如果日期是唯一的,为什么不设置两个Panda DataFrame并将它们合并到date列上?数组的元素是string类型还是Datetime类型?它们是string@Kalpit类型