python怎么计算殴氏距离(经纬坐标),元数据有59W行,数据为CSV格式(见图),求代码,感谢!

图片说明

            起初用的FOR循环,但数据量比较大内存不够运算(代码如下),想寻求一些简单的算法。
print('--------for循环计算殴氏距离试验---------')
number=len(X)
print(number)
print('-----for循环------')
knn={}
for i in range(number):
    for j in range(number):
        knn[i,j]=np.sqrt((X['LONGITUDE'][i]-X['LONGITUDE'][j])**2+(X['LATITUDE'][i]-X['LATITUDE'][j])**2)
print(knn)
# -*- coding:utf-8 -*-
"""
author:lqr
date:20210626 10:00
theme:Dimension reduction
参考:https://blog.csdn.net/A793539835/article/details/116265977
"""
import pandas as pd
import numpy as np
import csv
import math
import copy
f = open(r'mydata.csv')
reader = csv.reader(f)
m = []
for row in reader:
    m.append(row)
od = []  # outputdata
for i in range(1, 32401):   # (1, 53)
    subOD = []  # sub outputdata
    for j in range(1, 121):  # (1, 53)
        deltX = float(m[i][1])-float(m[j][1])
        deltY = float(m[i][2])-float(m[j][2])
        len = math.sqrt((deltX**2)+(deltY**2))   # a**2 ==>求a的平方    a**3 ==>求a的立方
        subOD.append(round(len, 3))
    od.append(subOD)
print(od)

csvFile = open('distance.csv', 'w+', newline="")
writer = csv.writer(csvFile)
writer.writerows(od)
csvFile.close()