Python中边缘的大小

时间:2013-11-18 01:28:21

标签: python math

我在3D中有2个点,有x,y和z坐标。 如何计算连接它们的边缘的大小?

这会有用吗?

abs( np.linalg.norm(p1) - np.linalg.norm(p2) )

其中p1和p2是列表:

[x-coord, y-coord, z-coord]

1 个答案:

答案 0 :(得分:2)

不,你想要两点之间的向量范数,即

>>> p1 = np.array([1,2,3])
>>> p2 = np.array([10, -3, 4])
>>> np.linalg.norm(p1-p2)
10.344080432788601

(它们需要是元素减法的数组才这么简单。)或者,手动:

>>> sum((i-j)**2 for i,j in zip(p1, p2))**0.5
10.344080432788601

abs( np.linalg.norm(p1) - np.linalg.norm(p2) )计算的内容更像是从(0,0,0)p1(0,0,0)p2的矢量长度之间的差异。