坐标列表转化为距离矩阵

5

我有一个包含8个坐标的列表,储存在列表中:

coordinates = [[47.2486, -1.54806],
               [43.5656, 1.47417],
               [48.3592, -4.57],
               [48.1439, 17.1097],
               [39.6275, 140.198],
               [30.0458, 31.2625],
               [38.9371, -77.0869],
               [33.9, 35.4823]]

以下脚本旨在输出一个坐标矩阵:
import numpy
from scipy.spatial.distance import pdist

coordinates_array = numpy.array(coordinates)
dist_array = pdist(coordinates_array)

dist_matrix = numpy.reshape(dist_array, newshape=(len(coordinates), len(coordinates)))

然而,我遇到了一个“ValueError: total size of new array must be unchanged(新数组的总大小必须保持不变)”。为什么会出现这种情况?
1个回答

5

根据scipy文档中的说明,使用scipy.spatial.distance.squareform将由pdist返回的压缩距离矩阵转换为方形距离矩阵。

from scipy.spatial.distance import squareform 

dist_matrix = squareform(dist_array)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接