def cov(x, y=None, rowvar=True, bias=False, allow_masked=True, ddof=None):
<EOL>if ddof is not None and ddof != int(ddof):<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>if ddof is None:<EOL><INDENT>if bias:<EOL><INDENT>ddof = <NUM_LIT:0><EOL><DEDENT>else:<EOL><INDENT>ddof = <NUM_LIT:1><EOL><DEDENT><DEDENT>(x, xnotmask, rowvar) = _covhelper(x, y, rowvar, allow_masked)<EOL>if not rowvar:<EOL><INDENT>fact = np.dot(xnotmask.T, xnotmask) * <NUM_LIT:1.> - ddof<EOL>result = (dot(x.T, x.conj(), strict=False) / fact).squeeze()<EOL><DEDENT>else:<EOL><INDENT>fact = np.dot(xnotmask, xnotmask.T) * <NUM_LIT:1.> - ddof<EOL>result = (dot(x, x.T.conj(), strict=False) / fact).squeeze()<EOL><DEDENT>return result<EOL>
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
    form 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
    .. versionadded:: 1.5
    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