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
如果传递压缩距离矩阵,则返回冗余距离矩阵;如果传递冗余距离矩阵,则返回压缩距离矩阵。
注意事项
v = squareform(X)
给定一个n乘n平方对称距离矩阵
X
,v = squareform(X)
返回一个n * (n-1) / 2
(即二项式系数n选择2)大小向量 v 哪里 \(v[{{n \choose 2}} - {{n-i \choose 2}} + (j-i-1)]\) 是不同点之间的距离i
和j
。如果X
为非方或非对称,则会引发错误。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,并开始返回与输入具有相同数据类型的数组。