Skip to main content
`Ctrl`+`K`
scipy.spatial.distance.

# correlation

scipy.spatial.distance.correlation(u, v, w=None, centered=True)

  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 of floats

      Input array.

    v(N,) array_like of floats

      Input array.

    w(N,) array_like of floats, optional

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

    centered bool, optional

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

  Returns:
    correlation double

      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