我有一个汽车 ID 列表和一个 x,y 坐标列表。我想计算每个坐标之间的距离。
问题是,在尝试了数周之后,距离矩阵有限制,我正在处理由数百万行和列组成的矩阵的千兆文件。这可以使用稀疏来完成以使其更有效吗?
list_coordinates = []
for line in coordinates.readlines():
list_coordinates.append(line.strip().split(','))
list_coordinates_int = [list(map(float, x)) for x in list_coordinates]
list_car_id = []
for line in car_ids.readlines():
list_car_id.append(line.strip().split(' '))
df = pd.DataFrame(list_coordinates_int, columns=['xcord', 'ycord'], index=list_car_id)
df2=pd.DataFrame(distance_matrix(df.values, df.values), index=df.index, columns=df.index)
list_coordinates : [['875.88', '588.26'], ['751.49', '656.55']]
list_coordinates_int : [[875.88, 588.26], [751.49, 656.55]]
list_car_id : [['car.0', 'car2.0', 'car.0', 'car2.0', 'car.0']]
产生的df2是这样的:
car.0 car2.0 car.4
car.0 0.000000 141.902770 0.702140
car2.0 141.902770 0.000000 141.205831
car.4 141.902770 0.702140 0.000000
有没有办法我可以使用稀疏或任何其他方法而不是距离矩阵来获得相同的 df2?