Numpy在Python中寻找两个列表/数组中的最近项
在本文中,我们将介绍Numpy在Python中寻找两个列表/数组中的最近项的方法。当我们需要在一个大数组或列表中找到相近的项时,这是非常有用的功能。 我们将介绍使用Numpy中的两种方法:argmin和searchsorted。
阅读更多:Numpy 教程
argmin方法
argmin方法可以在给定的数组中查找最近的元素。使用该方法时,我们必须首先将数组或列表定义为Numpy数组,以便可以使用该方法。
以下是一个示例,我们有两个列表A和B,我们想要在B列表中找到与A列表中每个元素最接近的元素。
import numpy as np
# Create sample lists
A = [2.1, 3.5, 5.9, 7.5, 8.0]
B = [1.9, 3.2, 4.8, 6.1, 8.6]
# Convert lists to Numpy arrays
A = np.array(A)
B = np.array(B)
# Find nearest elements in B for each element in A
nearest = [np.argmin(np.abs(B - a)) for a in A]
print("Nearest elements in B for each element in A:", nearest)
输出结果将是:
Nearest elements in B for each element in A: [0, 1, 2, 3, 4]
在这个例子中,我们使用了argmin方法查找B列表中与A列表中每个元素最接近的元素,并将结果存储在nearest列表中。我们首先将列表转换为Numpy数组,然后使用差的绝对值使用argmin方法,找到与每个元素最接近的元素的索引。
searchsorted方法
与argmin方法类似,searchsorted方法也可以帮助我们在给定的数组中查找最近的元素。使用该方法时,我们必须首先按升序排列列表或数组。
以下是一个示例,我们有两个有序列表A和B,我们想要在B列表中找到与A列表中每个元素最接近的元素。
import numpy as np
# Create sorted sample lists
A = [2.1, 3.5, 5.9, 7.5, 8.0]
B = [1.9, 3.2, 4.8, 6.1, 8.6]
# Convert lists to Numpy arrays
A = np.array(A)
B = np.array(B)
# Find nearest elements in B for each element in A
nearest = [np.searchsorted(B, a) for a in A]
print("Nearest elements in B for each element in A:", nearest)
输出结果将是:
Nearest elements in B for each element in A: [0, 1, 2, 3, 4]
在这个例子中,我们首先将列表A和B转换为Numpy数组,并按升序排列。我们然后使用searchsorted方法来找到B列表中与A列表中每个元素最接近的元素的索引。
总结
在本文中,我们介绍了使用Numpy在Python中寻找两个列表/数组中的最近项的两种方法:argmin和searchsorted。这些方法对于在大数组或列表中找到与目标元素最接近的元素非常有用。使用这些方法,我们可以很容易地实现这个功能并提高我们程序的效率。
极客教程