使用稀疏矩阵而不是numpy距离矩阵

时间:2019-10-21 09:27:29

标签: python-3.x sparse-matrix distance-matrix

我有一个汽车ID列表和一个x,y坐标列表。 我想计算每个坐标之间的距离。

问题是,现在尝试了几周之后,距离矩阵才有限制,我正在处理文件的Gigas,其结果是数百万行和列的矩阵。 可以使用稀疏来提高效率吗?

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?

0 个答案:

没有答案