Собственно, работает, но написана совершенно не в духе Numpy, покажите, пожалуйста, как это должно в нем выглядеть.
import numpy.linalg as linalg    

def find_closest_line(lines, point):
ls = []
for x in zip(lines, lines[1:]):
n = (x[0][1]-x[1][1])*point[0]+(x[1][0]-x[0][0])*point[1]+ x[0][0]*x[1][1] - x[1][0]*x[0][1]
ls.append(abs(n / linalg.norm(x)))
return N.argmin(ls)
lines - массив точек, образующих линию, пример N.array(((-107,51.5),(-31,-72.5),(134,14.5)))
point - точка, пример N.array((21,-44.5))
возвращает индекс ближайшей линии, в данном случае 1.
Есть ли в numpy аналоги zip, map, filter? уж больно обширна документация, глаза разбегаются