Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中不同列数的2xN矩阵的hausdorff距离_Python_Matrix_Scipy_Scipy Spatial - Fatal编程技术网

python中不同列数的2xN矩阵的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)

我有两个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)]
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
”)。逗号分隔每个维度的索引范围