#!/usr/bin/env python #coding:utf-8 import numpy M = 3 N = 5 # points1 l_lat = numpy.arange(N) l_lon = numpy.arange(N) m_l_lat = numpy.tile(l_lat, (M, 1)) m_l_lon = numpy.tile(l_lon, (M, 1)) # points2 v_lat = numpy.arange(M) v_lon = numpy.arange(M) m_v_lat_t = numpy.tile(v_lat, (N, 1)).T m_v_lon_t = numpy.tile(v_lon, (N, 1)).T distance = numpy.sqrt((m_v_lat_t - m_l_lat) ** 2 + (m_v_lon_t - m_l_lat) ** 2) print distanceAlthough code generates lat and lon with numpy.arange(), in real case you should fill each vector with appropriate lat and lon values. Below is an output of previous code.
~$ python test_calc_distance.py [[ 0. 1.41421356 2.82842712 4.24264069 5.65685425] [ 1.41421356 0. 1.41421356 2.82842712 4.24264069] [ 2.82842712 1.41421356 0. 1.41421356 2.82842712]]