I have a very simple python routine that involves cycling through a list of roughly 20,000 latitude,longitude coordinates and calculating the distance of each point to a ref
I understand this doesn't directly address your question (and I know this is an old question), but since there is some discussion about performance it may be worthwhile to look at the append operation. You may want to consider "pre-allocating" the array. For example:
array = [None] * num_elements
for i in range(num_elements):
array[i] = True
versus:
array = []
for i in range(num_elements):
array.append(True)
A simple timeit run of these two methods shows a 25% improvement if you pre-allocate the array for even moderate values of num_elements.