The code:
import numpy as np
import pandas as pd
from scipy.spatial.distance import pdist, squareform
ids = ['1', '2', '3']
points=[(0,0), (1,1), (3,3)]
distances = pdist(np.array(points), metric='euclidean')
print(distances)
distance_matrix = squareform(distances)
print(distance_matrix)
prints:
[1.41421356 4.24264069 2.82842712]
[[0. 1.41421356 4.24264069]
[1.41421356 0. 2.82842712]
[4.24264069 2.82842712 0. ]]
as expected
I want to turn this into a long format for writing in csv, as in
id1,id2,distance
1,1,0
1,2,1.41421356
1,3,4.24264069
2,1,1.41421356
2,2,0
2,3,2.82842712
etc - how should I go about it for maximum efficiency? Using pandas is an option