xray.DataArray

class xray.DataArray(data=None, coords=None, dims=None, name=None, attrs=None, encoding=None)

N-dimensional array with labeled coordinates and dimensions.

DataArray provides a wrapper around numpy ndarrays that uses labeled dimensions and coordinates to support metadata aware operations. The API is similar to that for the pandas Series or DataFrame, but DataArray objects can have any number of dimensions, and their contents have fixed data types.

Additional features over raw numpy arrays:

  • Apply operations over dimensions by name: x.sum('time').
  • Select or assign values by integer location (like numpy): x[:10] or by label (like pandas): x.loc['2014-01-01'] or x.labeled(time='2014-01-01').
  • Mathematical operations (e.g., x - y) vectorize across multiple dimensions (known in numpy as “broadcasting”) based on dimension names, regardless of their original order.
  • Keep track of arbitrary metadata in the form of a Python dictionary: x.attrs
  • Convert to a pandas Series: x.to_series().

Getting items from or doing mathematical operations with a DataArray always returns another DataArray.

Under the covers, a DataArray is a thin wrapper around an xray Dataset, and is uniquely defined by its dataset and name parameters.

Attributes

values The variables’s data as a numpy.ndarray
coords Dictionary-like container of xray.Coordinate objects used for label based indexing.
dims (tuple) Dimension names associated with this array.

Methods

all([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.all along some dimension(s).
any([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.any along some dimension(s).
argmax([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.argmax along some dimension(s).
argmin([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.argmin along some dimension(s).
argsort(*args, **kwargs)
astype(*args, **kwargs)
clip(*args, **kwargs)
concat(arrays[, dim, indexers, concat_over]) Stack arrays along a new or existing dimension to form a new DataArray.
conj(*args, **kwargs)
conjugate(*args, **kwargs)
copy([deep]) Returns a copy of this array.
drop_vars(*names) Returns a new DataArray without the named variables.
equals(other) True if two DataArrays have the same dimensions, coordinates and values; otherwise False.
from_series(series) Convert a pandas.Series into an xray.DataArray
get_axis_num(dim) Return axis number(s) corresponding to dimension(s) in this array.
groupby(group[, squeeze]) Group this dataset by unique values of the indicated group.
identical(other) Like equals, but also checks DataArray names and attributes, and attributes on their coordinates.
indexed(*args, **kwargs) Return a new DataArray whose dataset is given by integer indexing along the specified dimension(s).
isel(**indexers) Return a new DataArray whose dataset is given by integer indexing along the specified dimension(s).
isnull(*args, **kwargs) Detect missing values (NaN in numeric arrays, None/NaN in object arrays)
item(*args, **kwargs)
labeled(*args, **kwargs) Return a new DataArray whose dataset is given by selecting index labels along the specified dimension(s).
load_data() Manually trigger loading of this array’s data from disk or a remote source into memory and return this array.
max([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.max along some dimension(s).
mean([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.mean along some dimension(s).
min([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.min along some dimension(s).
notnull(*args, **kwargs) Replacement for numpy.isfinite / -numpy.isnan which is suitable for use on object arrays.
prod([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.prod along some dimension(s).
ptp([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.ptp along some dimension(s).
reduce(func[, dim, axis, keep_attrs]) Reduce this array by applying func along some dimension(s).
reindex([copy]) Conform this object onto a new set of coordinates, filling in missing values with NaN.
reindex_like(other[, copy]) Conform this object onto the coordinates of another object, filling in missing values with NaN.
rename(new_name_or_name_dict) Returns a new DataArray with renamed variables.
round(*args, **kwargs)
searchsorted(*args, **kwargs)
sel(**indexers) Return a new DataArray whose dataset is given by selecting index labels along the specified dimension(s).
select(*args, **kwargs) Returns a new DataArray with only the named variables, as well as this DataArray’s array variable (and all associated coordinates).
select_vars(*names) Returns a new DataArray with only the named variables, as well as this DataArray’s array variable (and all associated coordinates).
squeeze([dim]) Return a new DataArray object with squeezed data.
std([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.std along some dimension(s).
sum([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.sum along some dimension(s).
to_dataframe() Convert this array into a pandas.DataFrame.
to_dataset([name]) Convert a DataArray to a Dataset
to_index() Convert this variable to a pandas.Index.
to_series() Convert this array into a pandas.Series.
transpose(*dims) Return a new DataArray object with transposed dimensions.
unselect(*args, **kwargs) Returns a new DataArray without the named variables.
var([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.var along some dimension(s).
__init__(data=None, coords=None, dims=None, name=None, attrs=None, encoding=None)
Parameters:

data : array_like, optional

Values for this array. Must be a numpy.ndarray, ndarray like, or castable to an ndarray. If a self-described xray or pandas object, attempst are made to use this array’s metadata to fill in other unspecified arguments. This argument is required unless the ‘dataset’ argument is provided.

coords : sequence or dict of array_like objects, optional

Coordinates (tick labels) to use for indexing along each dimension. If dict-like, should be a mapping from dimension names to the corresponding coordinates.

dims : str or sequence of str, optional

Name(s) of the the data dimension(s). Must be either a string (only for 1D data) or a sequence of strings with length equal to the number of dimensions. If this argument is omited, dimension names are taken from coords (if possible) and otherwise default to ['dim_0', ... 'dim_n'].

name : str or None, optional

Name of this array.

attrs : dict_like or None, optional

Attributes to assign to the new variable. By default, an empty attribute dictionary is initialized.

encoding : dict_like or None, optional

Dictionary specifying how to encode this array’s data into a serialized format like netCDF4. Currently used keys (for netCDF) include ‘_FillValue’, ‘scale_factor’, ‘add_offset’, ‘dtype’, ‘units’ and ‘calendar’ (the later two only for datetime arrays). Unrecognized keys are ignored.

Methods

__init__([data, coords, dims, name, attrs, ...])
Parameters:
all([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.all along some dimension(s).
any([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.any along some dimension(s).
argmax([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.argmax along some dimension(s).
argmin([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.argmin along some dimension(s).
argsort(*args, **kwargs)
astype(*args, **kwargs)
clip(*args, **kwargs)
concat(arrays[, dim, indexers, concat_over]) Stack arrays along a new or existing dimension to form a new DataArray.
conj(*args, **kwargs)
conjugate(*args, **kwargs)
copy([deep]) Returns a copy of this array.
drop_vars(*names) Returns a new DataArray without the named variables.
equals(other) True if two DataArrays have the same dimensions, coordinates and values; otherwise False.
from_series(series) Convert a pandas.Series into an xray.DataArray
get_axis_num(dim) Return axis number(s) corresponding to dimension(s) in this array.
groupby(group[, squeeze]) Group this dataset by unique values of the indicated group.
identical(other) Like equals, but also checks DataArray names and attributes, and attributes on their coordinates.
indexed(*args, **kwargs) Return a new DataArray whose dataset is given by integer indexing along the specified dimension(s).
isel(**indexers) Return a new DataArray whose dataset is given by integer indexing along the specified dimension(s).
isnull(*args, **kwargs) Detect missing values (NaN in numeric arrays, None/NaN in object arrays)
item(*args, **kwargs)
labeled(*args, **kwargs) Return a new DataArray whose dataset is given by selecting index labels along the specified dimension(s).
load_data() Manually trigger loading of this array’s data from disk or a remote source into memory and return this array.
max([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.max along some dimension(s).
mean([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.mean along some dimension(s).
min([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.min along some dimension(s).
notnull(*args, **kwargs) Replacement for numpy.isfinite / -numpy.isnan which is suitable for use on object arrays.
prod([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.prod along some dimension(s).
ptp([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.ptp along some dimension(s).
reduce(func[, dim, axis, keep_attrs]) Reduce this array by applying func along some dimension(s).
reindex([copy]) Conform this object onto a new set of coordinates, filling in missing values with NaN.
reindex_like(other[, copy]) Conform this object onto the coordinates of another object, filling in missing values with NaN.
rename(new_name_or_name_dict) Returns a new DataArray with renamed variables.
round(*args, **kwargs)
searchsorted(*args, **kwargs)
sel(**indexers) Return a new DataArray whose dataset is given by selecting index labels along the specified dimension(s).
select(*args, **kwargs) Returns a new DataArray with only the named variables, as well as this DataArray’s array variable (and all associated coordinates).
select_vars(*names) Returns a new DataArray with only the named variables, as well as this DataArray’s array variable (and all associated coordinates).
squeeze([dim]) Return a new DataArray object with squeezed data.
std([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.std along some dimension(s).
sum([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.sum along some dimension(s).
to_dataframe() Convert this array into a pandas.DataFrame.
to_dataset([name]) Convert a DataArray to a Dataset
to_index() Convert this variable to a pandas.Index.
to_series() Convert this array into a pandas.Series.
transpose(*dims) Return a new DataArray object with transposed dimensions.
unselect(*args, **kwargs) Returns a new DataArray without the named variables.
var([dim, axis, keep_attrs]) Reduce this DataArray’s data by applying numpy.var along some dimension(s).

Attributes

T
as_index
attributes
attrs Dictionary storing arbitrary metadata with this array.
coordinates
coords Dictionary-like container of xray.Coordinate objects used for label based indexing.
dataset The dataset with which this DataArray is associated.
dimensions
dims
dtype
encoding Dictionary of format-specific settings for how this array should be serialized.
indexes
loc Attribute for location based indexing like pandas..
name The name of the variable in dataset to which array operations are applied.
ndim
shape
size
values The variables’s data as a numpy.ndarray
variable