scipy.spatial.distance.squareform

scipy.spatial.distance.squareform(X, force='no', checks=True)[源代码]

将矢量形式的距离矢量转换为平方形式的距离矩阵,反之亦然。

参数
Xarray_like

可以是浓缩距离矩阵,也可以是冗余距离矩阵。

force字符串,可选

与MATLAB(TM)一样,如果力等于 'tovector''tomatrix' ,则分别将输入视为距离矩阵或距离矢量。

checks布尔值,可选

如果设置为False,则不会检查矩阵对称性或零对角线。如果已知以下情况,这将非常有用 X - X.T1 很小,而且 diag(X) 接近于零。这些值无论如何都会被忽略,这样它们就不会中断正方形变换。

退货
Yndarray

如果传递压缩距离矩阵,则返回冗余距离矩阵;如果传递冗余距离矩阵,则返回压缩距离矩阵。

注意事项

  1. v = squareform(X)

    给定一个n乘n平方对称距离矩阵 Xv = squareform(X) 返回一个 n * (n-1) / 2 (即二项式系数n选择2)大小向量 v 哪里 \(v[{{n \choose 2}} - {{n-i \choose 2}} + (j-i-1)]\) 是不同点之间的距离 ij 。如果 X 为非方或非对称,则会引发错误。

  2. X = squareform(v)

    给出了一个 n * (n-1) / 2 调整大小的矢量 v 对于某个整数 n >= 1 编码距离如上所述, X = squareform(v) 返回n乘以n的距离矩阵 X 。这个 X[i, j]X[j, i] 值设置为 \(v[{{n \choose 2}} - {{n-i \choose 2}} + (j-i-1)]\) 所有的对角元素都是零。

在Science Py 0.19.0中, squareform 停止将所有输入类型强制转换为Float64,并开始返回与输入具有相同数据类型的数组。