python中不同列数的2xN矩阵的hausdorff距离
我有两个2xN的值矩阵,我想用“directed_hausdorff(u,v)”函数求它们的hausdorff距离。然而,由于两个矩阵中的列数不相等,我想找出使用列数较少的矩阵的hausdorff距离。例如,如果我有python中不同列数的2xN矩阵的hausdorff距离,python,matrix,scipy,scipy-spatial,Python,Matrix,Scipy,Scipy Spatial,我有两个2xN的值矩阵,我想用“directed_hausdorff(u,v)”函数求它们的hausdorff距离。然而,由于两个矩阵中的列数不相等,我想找出使用列数较少的矩阵的hausdorff距离。例如,如果我有 t = [(1,2,3,9), (4,5,6,7)] l = [(3,4,5), (7,8,9)] l有3列,t有4列。由于t大于l,我想修改t,使其与l的大小相同,这样我可以计算到大小相等的矩阵之间的hausdorff距离,基本上是 t = [(1,2,3), (4,5,6)
t = [(1,2,3,9), (4,5,6,7)]
l = [(3,4,5), (7,8,9)]
l
有3列,t
有4列。由于t
大于l
,我想修改t
,使其与l
的大小相同,这样我可以计算到大小相等的矩阵之间的hausdorff距离,基本上是
t = [(1,2,3), (4,5,6)]
l = (3,4,5), (7,8,9)]
我想将此应用于任意两个2xN(不同大小)的矩阵,其中我确定哪个矩阵有更多的列,然后通过删除从最后一列开始的元素来修改较大的矩阵,使其等于较小矩阵的大小。有没有一种快捷方式可以输出这两个列表?我不知道有什么函数可以实现这一点,但是如果
t
和l
是Numpy数组,那么您可以用相当短的代码完成这一点,而无需在内存中复制数据
import numpy as np
from scipy.spatial.distance import directed_hausdorff
...
t = np.array(t)
l = np.array(l)
num_cols = min(t.shape[1], l.shape[1])
distance = directed_hausdorff(t[:, :num_cols], l[:, :num_cols])
表达式
t.shape[1]
表示数组沿维度(或“轴”)1的大小,即列数(而行数应为t.shape[0]
)。索引语法t[:,:num\u cols]
意味着对于每一行(“:
”),获取第一个num\u cols
列(“:num\u columns
”)。逗号分隔了每个维度的索引范围。我不知道这方面的现有函数,但是如果t
和l
是Numpy数组,那么您可以用相当短的代码完成这项工作,而无需在内存中复制数据
import numpy as np
from scipy.spatial.distance import directed_hausdorff
...
t = np.array(t)
l = np.array(l)
num_cols = min(t.shape[1], l.shape[1])
distance = directed_hausdorff(t[:, :num_cols], l[:, :num_cols])
表达式t.shape[1]
表示数组沿维度(或“轴”)1的大小,即列数(而行数应为t.shape[0]
)。索引语法t[:,:num\u cols]
意味着对于每一行(“:
”),获取第一个num\u cols
列(“:num\u columns
”)。逗号分隔每个维度的索引范围