Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 在numpy数组中返回相邻值的最快方法_Python_Arrays_Numpy - Fatal编程技术网

Python 在numpy数组中返回相邻值的最快方法

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数组。每天的时间不一定匹配,所以我需要仔细检查,以找到匹配的时间

因此,我目前创建了一个简单的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,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类型