πΎ Xarray is now 10 years old! π

# xarray.cov#

xarray.cov(da_a, da_b, dim=None, ddof=1, weights=None)[source]#

Compute covariance between two DataArray objects along a shared dimension.

Parameters:
• da_a (DataArray) β Array to compute.

• da_b (DataArray) β Array to compute.

• dim (str, iterable of hashable, "..." or None, optional) β The dimension along which the covariance will be computed

• ddof (int, default: 1) β If ddof=1, covariance is normalized by N-1, giving an unbiased estimate, else normalization is by N.

• weights (DataArray, optional) β Array of weights.

Returns:

covariance (DataArray)

pandas.Series.cov

corresponding pandas function

xarray.corr

respective function to calculate correlation

Examples

>>> from xarray import DataArray
>>> da_a = DataArray(
...     np.array([[1, 2, 3], [0.1, 0.2, 0.3], [3.2, 0.6, 1.8]]),
...     dims=("space", "time"),
...     coords=[
...         ("space", ["IA", "IL", "IN"]),
...         ("time", pd.date_range("2000-01-01", freq="1D", periods=3)),
...     ],
... )
>>> da_a
<xarray.DataArray (space: 3, time: 3)> Size: 72B
array([[1. , 2. , 3. ],
[0.1, 0.2, 0.3],
[3.2, 0.6, 1.8]])
Coordinates:
* space    (space) <U2 24B 'IA' 'IL' 'IN'
* time     (time) datetime64[ns] 24B 2000-01-01 2000-01-02 2000-01-03
>>> da_b = DataArray(
...     np.array([[0.2, 0.4, 0.6], [15, 10, 5], [3.2, 0.6, 1.8]]),
...     dims=("space", "time"),
...     coords=[
...         ("space", ["IA", "IL", "IN"]),
...         ("time", pd.date_range("2000-01-01", freq="1D", periods=3)),
...     ],
... )
>>> da_b
<xarray.DataArray (space: 3, time: 3)> Size: 72B
array([[ 0.2,  0.4,  0.6],
[15. , 10. ,  5. ],
[ 3.2,  0.6,  1.8]])
Coordinates:
* space    (space) <U2 24B 'IA' 'IL' 'IN'
* time     (time) datetime64[ns] 24B 2000-01-01 2000-01-02 2000-01-03
>>> xr.cov(da_a, da_b)
<xarray.DataArray ()> Size: 8B
array(-3.53055556)
>>> xr.cov(da_a, da_b, dim="time")
<xarray.DataArray (space: 3)> Size: 24B
array([ 0.2       , -0.5       ,  1.69333333])
Coordinates:
* space    (space) <U2 24B 'IA' 'IL' 'IN'
>>> weights = DataArray(
...     [4, 2, 1],
...     dims=("space"),
...     coords=[
...         ("space", ["IA", "IL", "IN"]),
...     ],
... )
>>> weights
<xarray.DataArray (space: 3)> Size: 24B
array([4, 2, 1])
Coordinates:
* space    (space) <U2 24B 'IA' 'IL' 'IN'
>>> xr.cov(da_a, da_b, dim="space", weights=weights)
<xarray.DataArray (time: 3)> Size: 24B
array([-4.69346939, -4.49632653, -3.37959184])
Coordinates:
* time     (time) datetime64[ns] 24B 2000-01-01 2000-01-02 2000-01-03