我有一个元组数组,我需要从该数组中找到与给定元组(元素)接近的元组,即通过这两个元组中每个元素之间的绝对值差。元组数组如下:
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()的情况下打印结果,我可以清楚地看到它是数组中与给定元组差异最小的最后一个元素。
2条答案
按热度按时间6ioyuze21#
您必须考虑所有坐标并将其聚合为单个数字(每行)。
计算平方和并得到(arg)min:
字符串
输出:
11
argmin
之前的中间体:型
正如@MadPhysicist所建议的,你也可以使用
numpy.linalg.norm
来计算每行的norm:型
oyjwcjzk2#
它所做的是正确的。看到一步一步
字符串
这里没有给出坐标轴,0.4是最小的数字,也是第一次出现的数字,如果把数组转换成一维的话,它的下标是8