scipy.spatial.distance.correlation#

scipy.spatial.distance.correlation(u, v, w=None, centered=True)[source]#

Compute the correlation distance between two 1-D arrays.

The correlation distance between u and v, is defined as

\[1 - \frac{(u - \bar{u}) \cdot (v - \bar{v})} {{\|(u - \bar{u})\|}_2 {\|(v - \bar{v})\|}_2}\]

where \(\bar{u}\) is the mean of the elements of u and \(x \cdot y\) is the dot product of \(x\) and \(y\).

Parameters:
u(N,) array_like

Input array.

v(N,) array_like

Input array.

w(N,) array_like, optional

The weights for each value in u and v. Default is None, which gives each value a weight of 1.0

centeredbool, optional

If True, u and v will be centered. Default is True.

Returns:
correlationdouble

The correlation distance between 1-D array u and v.

Examples

Find the correlation between two arrays.

>>> from scipy.spatial.distance import correlation
>>> correlation([1, 0, 1], [1, 1, 0])
1.5

Using a weighting array, the correlation can be calculated as:

>>> correlation([1, 0, 1], [1, 1, 0], w=[0.9, 0.1, 0.1])
1.1

If centering is not needed, the correlation can be calculated as:

>>> correlation([1, 0, 1], [1, 1, 0], centered=False)
0.5