Skip to main content
`Ctrl`+`K`

# numpy.ma.cov

ma.cov(x, y=None, rowvar=True, bias=False, allow_masked=True, ddof=None)

  Estimate the covariance matrix.

  Except for the handling of missing data this function does the same as `numpy.cov`. For more details and examples, see `numpy.cov`.

  By default, masked values are recognized as such. If x and y have the same shape, a common mask is allocated: if `x[i,j]` is masked, then `y[i,j]` will also be masked. Setting allow_masked to False will raise an exception if values are missing in either of the input arrays.

  Parameters:
    x array_like

      A 1-D or 2-D array containing multiple variables and observations. Each row of x represents a variable, and each column a single observation of all those variables. Also see rowvar below.

    y array_like, optional

      An additional set of variables and observations. y has the same shape as x.

    rowvar bool, optional

      If rowvar is True (default), then each row represents a variable, with observations in the columns. Otherwise, the relationship is transposed: each column represents a variable, while the rows contain observations.

    bias bool, optional

      Default normalization (False) is by `(N-1)`, where `N` is the number of observations given (unbiased estimate). If bias is True, then normalization is by `N`. This keyword can be overridden by the keyword `ddof` in numpy versions >= 1.5.

    allow_masked bool, optional

      If True, masked values are propagated pair-wise: if a value is masked in x, the corresponding value is masked in y. If False, raises a ValueError exception when some values are missing.

    ddof{None, int}, optional

      If not `None` normalization is by `(N - ddof)`, where `N` is the number of observations; this overrides the value implied by `bias`. The default value is `None`.

  Raises:
    ValueError

      Raised if some values are missing and allow_masked is False.

  See also

  `numpy.cov`

  Examples

      >>> import numpy as np
      >>> x = np.ma.array([[0, 1], [1, 1]], mask=[0, 1, 0, 1])
      >>> y = np.ma.array([[1, 0], [0, 1]], mask=[0, 0, 1, 1])
      >>> np.ma.cov(x, y)
      masked_array(
      data=[[--, --, --, --],
            [--, --, --, --],
            [--, --, --, --],
            [--, --, --, --]],
      mask=[[ True,  True,  True,  True],
            [ True,  True,  True,  True],
            [ True,  True,  True,  True],
            [ True,  True,  True,  True]],
      fill_value=1e+20,
      dtype=float64)