Encontrar eficientemente o par de coordenadas mais próximo de um conjunto em Python

O problema

Imagine que estou parado em um aeroporto. Dado um par de coordenadas geográficas, como determinar com eficiência em qual aeroporto eu estou?

Entradas

Um par de coordenadas(x,y) representando o local em que estou.Um conjunto de pares de coordenadas[(a1,b1), (a2,b2)...] onde cada par de coordenadas representa um aeroporto.

Saída desejada

Um par de coordenadas(a,b) do conjunto de pares de coordenadas do aeroporto que representam o aeroporto mais próximo do ponto(x,y).

Solução ineficiente

Aqui está minha tentativa ineficiente de resolver esse problema. É claramente linear no comprimento do conjunto de aeroportos.

shortest_distance = None
shortest_distance_coordinates = None

point = (50.776435, -0.146834)

for airport in airports:
    distance = compute_distance(point, airport)
    if distance < shortest_distance or shortest_distance is None:
        shortest_distance = distance
        shortest_distance_coordinates = airport

A questão

Como essa solução pode ser melhorada? Isso pode envolver alguma maneira de pré-filtrar a lista de aeroportos com base nas coordenadas do local em que estamos atualmente ou classificá-los em uma determinada ordem previamente.

questionAnswers(3)

yourAnswerToTheQuestion