Как найти наиболее похожий столбец по двум критериям

У меня есть двумерный массив и два значения. Как найти столбец, который был бы ближе остальных по a и b?

a = 5
b = 24000

m = [[4.5, 5.3, 4.2, 5.7, 5],
     [25000, 23000, 22000, 27000, 13000]]

Ответы (1 шт):

Автор решения: splash58

можно попробовать искать по минимальной сумме относительных отклонений, чтобы выровнять влияние больших и маленьких значений

import numpy as np

a = 5
b = 24000
aim = np.array([a,b]).reshape(2,-1)

m = np.array([[4.5, 5.3, 4.2, 5.7, 5],
     [25000, 23000, 22000, 27000, 13000]])

idx = np.sum(np.abs(m-aim) / m, axis=0).argmin()

print(m[:,idx])   # [5.3e+00 2.3e+04]
→ Ссылка