### Navigation

- index
- modules |
- modules |
- next |
- previous |
- SciPy v0.12 Reference Guide (DRAFT) »
- Spatial algorithms and data structures (`scipy.spatial`) »
- scipy.spatial.distance »

# scipy.spatial.distance.squareform

`scipy.spatial.distance.``squareform`(X, force='no', checks=True)

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

  Parameters : | X : ndarray Either a condensed or redundant distance matrix.
  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. 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 checks is 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.

  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.

  2. 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-u-1)] and all diagonal elements are zero.

### Navigation

- index
- modules |
- modules |
- next |
- previous |
- SciPy v0.12 Reference Guide (DRAFT) »
- Spatial algorithms and data structures (`scipy.spatial`) »
- scipy.spatial.distance »