我有一个数组,它描述了折线(连接直线段的有序列表),如下所示:
points = ((0,0),
(1,2),
(3,4),
(6,5),
(10,3),
(15,4))
points = numpy.array(points, dtype=float)
目前,我使用以下循环获得线束段距离的列表:
^{pr2}$相反,我希望使用一些本机Scipy/Numpy函数应用一个不带循环的函数调用。在
我能得到的最接近的信息是:
from scipy.spatial.distance import pdist
segdists = pdist(points, metric='euclidean')
但是在后面的例子中,segdists提供了每个距离,我只想得到相邻行之间的距离。在
另外,我宁愿避免创建自定义函数(因为我已经有了一个有效的解决方案),而是使用更多的本机函数的“numpythonic”用法。在
有一种方法:
使用矢量化^{} 计算增量:
然后使用^{} 计算长度:
^{2}$或者使用更显式的计算:
相关问题 更多 >
编程相关推荐