Использование разреженной матрицы вместо простой матрицы расстояний - PullRequest
0 голосов
/ 21 октября 2019

У меня есть список идентификаторов автомобилей и список координат x, y. Я хочу вычислить расстояние между каждой из координат.

Проблема в том, что после нескольких недель попыток матрица расстояний имеет пределы, и я имею дело с гигабайтами файлов с получающейся матрицей миллионов строки столбцы. Можно ли это сделать, используя sparse, чтобы сделать его более эффективным?

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, использующий разреженный или любой другой метод, кроме матрицы расстояний?

...