Numpy argmin() 查找最近的元组

问题描述 投票:0回答:1

我有一个元组数组,我需要从该数组中找到与给定元组最接近的元组(元素方面),即通过这两个元组的每个元素之间的绝对值差。元组数组如下:

array_of_tuples = [(0.0, 6.5, 1),
     (0.0, 6.5, 4.5),
     (0.0, 6.5, 8.0),
     (0.0, 13.5, 1),
     (0.0, 13.5, 4.5),
     (0.0, 13.5, 8.0),
     (0.0, 21.0, 1),
     (0.0, 21.0, 4.5),
     (0.0, 21.0, 8.0),
     (7.0, 6.5, 1),
     (7.0, 6.5, 4.5),
     (13.5, 21.0, 8.0)]
 
 

虽然查询元组是

(13.1, 20.3, 8.4)

无论如何:

np.argmin(np.abs(array_of_tuples - (13.1, 20.3, 8.4)))

给出

8
,而如果我在没有 np.argmin() 的情况下打印结果,我清楚地看到它是数组中与给定元组差异最小的最后一个元素。

python-3.x numpy array-broadcasting
1个回答
0
投票

你必须考虑所有坐标。计算平方和并得到 (arg)min:

np.argmin(((array_of_tuples - (13.1, 20.3, 8.4))**2).sum(axis=1))

输出:

11

© www.soinside.com 2019 - 2024. All rights reserved.