2024-06-07 03:58:43 发布
网友
我有两个一维纽比阵列。长度不相等。我想把彼此靠近的元素配对(array1_elemnt,array2_element)。让我们考虑下面的例子
a = [1,2,3,8,20,23] b = [1,2,3,5,7,21,35]
预期结果是
需要注意的是5是单独的。它可以很容易地通过循环来完成,但我有非常大的数组。我考虑过用最近的邻居。但感觉就像用大炮杀了一只麻雀。在
有谁能提出一个优雅的解决方案吗。在
非常感谢。在
您可以使用内置的map函数来向化一个执行此操作的函数。例如:
ar1 = np.array([1,2,3,8,20,23]) ar2 = np.array([1,2,3,5,7,21,35]) def closest(ar1, ar2, iter): x = np.abs(ar1[iter] - ar2) index = np.where(x==x.min()) value = ar2[index] return value def find(x): return closest(ar1, ar2, x) c = np.array(map(find, range(ar1.shape[0])))
在上面的示例中,您似乎希望在值配对后排除它们。在这种情况下,可以像这样在第一个函数中包含一个删除过程,但是要非常小心数组1是如何排序的:
使用Needleman-Wunsch算法怎么样?:)
评分矩阵将是微不足道的,因为两个数字之间的“距离”只是它们的差异。在
但可能会觉得像是一个坦克在杀麻雀。。。在
我能想到的最好的方法是使用循环。如果python中的循环很慢,可以使用Cython来加快代码的速度。在
您可以使用内置的map函数来向化一个执行此操作的函数。例如:
在上面的示例中,您似乎希望在值配对后排除它们。在这种情况下,可以像这样在第一个函数中包含一个删除过程,但是要非常小心数组1是如何排序的:
^{pr2}$使用Needleman-Wunsch算法怎么样?:)
评分矩阵将是微不足道的,因为两个数字之间的“距离”只是它们的差异。在
但可能会觉得像是一个坦克在杀麻雀。。。在
我能想到的最好的方法是使用循环。如果python中的循环很慢,可以使用Cython来加快代码的速度。在
相关问题 更多 >
编程相关推荐