# scipy.spatial.distance.squareform¶

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

Convert a vector-form distance vector to a square-form distance matrix, and vice-versa.

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 and diag(X) is close to zero. These values are ignored any way so they do not disrupt the squareform transformation. 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

1. v = squareform(X)

Given a square d-by-d symmetric distance matrix X, v = squareform(X) returns a d * (d-1) / 2 (or $${n \choose 2}$$) sized vector v.

$$v[{n \choose 2}-{n-i \choose 2} + (j-i-1)]$$ is the distance between points i and j. If X is non-square or asymmetric, an error is returned.
1. X = squareform(v)
Given a d*(d-1)/2 sized v for some integer d >= 2 encoding distances as described, X = squareform(v) returns a d by d distance matrix X. The X[i, j] and X[j, i] values are set to $$v[{n \choose 2}-{n-i \choose 2} + (j-i-1)]$$ 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.

#### Previous topic

scipy.spatial.distance.cdist

#### Next topic

scipy.spatial.distance.directed_hausdorff