Computes distance between each pair of observation vectors in the
Cartesian product of two collections of vectors. XA is a
by array while XB is a by
array. A by array is
returned. An exception is thrown if XA and XB do not have
the same number of columns.

A rectangular distance matrix Y is returned. For each
and , the metric dist(u=XA[i],v=XB[j]) is computed
and stored in the th entry.

The following are common calling conventions:

Y=cdist(XA,XB,'euclidean')

Computes the distance between points using
Euclidean distance (2-norm) as the distance metric between the
points. The points are arranged as -dimensional row vectors in the matrix X.

Y=cdist(XA,XB,'minkowski',p)

Computes the distances using the Minkowski distance
(-norm) where .

Y=cdist(XA,XB,'cityblock')

Computes the city block or Manhattan distance between the
points.

Y=cdist(XA,XB,'seuclidean',V=None)

Computes the standardized Euclidean distance. The standardized
Euclidean distance between two n-vectors u and v is

V is the variance vector; V[i] is the variance computed over all

the i’th components of the points. If not passed, it is
automatically computed.

where is the Manhattan (or 1-norm) of its
argument, and is the common dimensionality of the
vectors.

Y=cdist(XA,XB,'hamming')

Computes the normalized Hamming distance, or the proportion of
those vector elements between two n-vectors u and v
which disagree. To save memory, the matrix X can be of type
boolean.

Y=cdist(XA,XB,'jaccard')

Computes the Jaccard distance between the points. Given two
vectors, u and v, the Jaccard distance is the
proportion of those elements u[i] and v[i] that
disagree where at least one of them is non-zero.

Y=cdist(XA,XB,'chebyshev')

Computes the Chebyshev distance between the points. The
Chebyshev distance between two n-vectors u and v is the
maximum norm-1 distance between their respective elements. More
precisely, the distance is given by

Y=cdist(XA,XB,'canberra')

Computes the Canberra distance between the points. The
Canberra distance between two points u and v is

Y=cdist(XA,XB,'braycurtis')

Computes the Bray-Curtis distance between the points. The
Bray-Curtis distance between two points u and v is

Y=cdist(XA,XB,'mahalanobis',VI=None)

Computes the Mahalanobis distance between the points. The
Mahalanobis distance between two points u and v is
where (the VI
variable) is the inverse covariance. If VI is not None,
VI will be used as the inverse covariance matrix.

Computes the distance between all pairs of vectors in X
using the user supplied 2-arity function f. For example,
Euclidean distance between the vectors could be computed
as follows:

dm=cdist(XA,XB,(lambdau,v:np.sqrt(((u-v)*(u-v).T).sum())))

Note that you should avoid passing a reference to one of
the distance functions defined in this library. For example,:

dm=cdist(XA,XB,sokalsneath)

would calculate the pair-wise distances between the vectors in
X using the Python function sokalsneath. This would result in
sokalsneath being called times, which
is inefficient. Instead, the optimized C version is more
efficient, and we call it using the following syntax.: