scipy.spatial.distance.squareform¶

scipy.spatial.distance.
squareform
(X, force='no', checks=True)[source]¶ Converts a vectorform distance vector to a squareform distance matrix, and viceversa.
Parameters: X : ndarray
Either a condensed or redundant distance matrix.
force : str, optional
As with MATLAB(TM), if force is equal to
'tovector'
or'tomatrix'
, the input will be treated as a distance matrix or distance vector respectively.checks : bool, optional
If set to False, no checks will be made for matrix symmetry nor zero diagonals. This is useful if it is known that
X  X.T1
is small anddiag(X)
is close to zero. These values are ignored any way so they do not disrupt the squareform transformation.Returns: Y : ndarray
If a condensed distance matrix is passed, a redundant one is returned, or if a redundant one is passed, a condensed distance matrix is returned.
Notes
v = squareform(X)
Given a square dbyd symmetric distance matrix X,
v = squareform(X)
returns ad * (d1) / 2
(or \({n \choose 2}\)) sized vector v.
\(v[{n \choose 2}{ni \choose 2} + (ji1)]\) is the distance between points i and j. If X is nonsquare or asymmetric, an error is returned. X = squareform(v)
Given ad*(d1)/2
sized v for some integerd >= 2
encoding distances as described,X = squareform(v)
returns a d by d distance matrix X. TheX[i, j]
andX[j, i]
values are set to \(v[{n \choose 2}{ni \choose 2} + (ji1)]\) and all diagonal elements are zero.In Scipy 0.19.0,
squareform
stopped casting all input types to float64, and started returning arrays of the same dtype as the input.