xarray/core/variable.py
def concat(cls, variables, dim="concat_dim", positions=None, shortcut=False):
        """Concatenate variables along a new or existing dimension.

        Parameters
        ----------
        variables : iterable of Variable
            Arrays to stack together. Each variable is expected to have
            matching dimensions and shape except for along the stacked
            dimension.
        dim : str or DataArray, optional
            Name of the dimension to stack along. This can either be a new
            dimension name, in which case it is added along axis=0, or an
            existing dimension name, in which case the location of the
            dimension is unchanged. Where to insert the new dimension is
            determined by the first variable.
        positions : None or list of array-like, optional
            List of integer arrays which specifies the integer positions to
            which to assign each dataset along the concatenated dimension.
            If not supplied, objects are concatenated in the provided order.
        shortcut : bool, optional
            This option is used internally to speed-up groupby operations.
            If `shortcut` is True, some checks of internal consistency between
            arrays to concatenate are skipped.

        Returns
        -------
        stacked : Variable
            Concatenated Variable formed by stacking all the supplied variables
            along the given dimension.
        """
        if not isinstance(dim, str):
            (dim,) = dim.dims

        # can't do this lazily: we need to loop through variables at least
        # twice
        variables = list(variables)
        first_var = variables[0]

        arrays = [v.data for v in variables]

        if dim in first_var.dims:
            axis = first_var.get_axis_num(dim)
            dims = first_var.dims
            data = duck_array_ops.concatenate(arrays, axis=axis)
            if positions is not None:
                # TODO: deprecate this option -- we don't need it for groupby
                # any more.
                indices = nputils.inverse_permutation(np.concatenate(positions))
                data = duck_array_ops.take(data, indices, axis=axis)
        else:
            axis = 0
            dims = (dim,) + first_var.dims
            data = duck_array_ops.stack(arrays, axis=axis)

        attrs = dict(first_var.attrs)
        encoding = dict(first_var.encoding)
        if not shortcut:
            for var in variables:
                if var.dims != first_var.dims:
                    raise ValueError(
                        f"Variable has dimensions {list(var.dims)} but first Variable has dimensions {list(first_var.dims)}"
                    )

        return cls(dims, data, attrs, encoding)
Concatenate variables along a new or existing dimension.

        Parameters
        ----------
        variables : iterable of Variable
            Arrays to stack together. Each variable is expected to have
            matching dimensions and shape except for along the stacked
            dimension.
        dim : str or DataArray, optional
            Name of the dimension to stack along. This can either be a new
            dimension name, in which case it is added along axis=0, or an
            existing dimension name, in which case the location of the
            dimension is unchanged. Where to insert the new dimension is
            determined by the first variable.
        positions : None or list of array-like, optional
            List of integer arrays which specifies the integer positions to
            which to assign each dataset along the concatenated dimension.
            If not supplied, objects are concatenated in the provided order.
        shortcut : bool, optional
            This option is used internally to speed-up groupby operations.
            If `shortcut` is True, some checks of internal consistency between
            arrays to concatenate are skipped.

        Returns
        -------
        stacked : Variable
            Concatenated Variable formed by stacking all the supplied variables
            along the given dimension.
        
Concatenate variables along a new or existing dimension.
Parameters

variables : iterable of Variable
Arrays to stack together. Each variable is expected to have
matching dimensions and shape except for along the stacked
dimension.
dim : str or DataArray, optional
Name of the dimension to stack along. This can either be a new
dimension name, in which case it is added along axis=0, or an
existing dimension name, in which case the location of the
dimension is unchanged. Where to insert the new dimension is
determined by the first variable.
positions : None or list of array-like, optional
List of integer arrays which specifies the integer positions to
which to assign each dataset along the concatenated dimension.
If not supplied, objects are concatenated in the provided order.
shortcut : bool, optional
This option is used internally to speed-up groupby operations.
If `shortcut` is True, some checks of internal consistency between
arrays to concatenate are skipped.

Returns

stacked : Variable
Concatenated Variable formed by stacking all the supplied variables
along the given dimension.
Concatenate variables along a new or existing dimension . Parameters variables : iterable of Variable Arrays to stack together . Each variable is expected to have matching dimensions and shape except for along the stacked dimension . dim : str or DataArray optional Name of the dimension to stack along . This can either be a new dimension name in which case it is added along axis = 0 or an existing dimension name in which case the location of the dimension is unchanged . Where to insert the new dimension is determined by the first variable . positions : None or list of array - like optional List of integer arrays which specifies the integer positions to which to assign each dataset along the concatenated dimension . If not supplied objects are concatenated in the provided order . shortcut : bool optional This option is used internally to speed - up groupby operations . If ` shortcut ` is True some checks of internal consistency between arrays to concatenate are skipped . Returns stacked : Variable Concatenated Variable formed by stacking all the supplied variables along the given dimension .
def concat(cls, variables, dim="concat_dim", positions=None, shortcut=False):
        if not isinstance(dim, str):
            (dim,) = dim.dims
        variables = list(variables)
        first_var = variables[0]
        arrays = [v.data for v in variables]
        if dim in first_var.dims:
            axis = first_var.get_axis_num(dim)
            dims = first_var.dims
            data = duck_array_ops.concatenate(arrays, axis=axis)
            if positions is not None:
                indices = nputils.inverse_permutation(np.concatenate(positions))
                data = duck_array_ops.take(data, indices, axis=axis)
        else:
            axis = 0
            dims = (dim,) + first_var.dims
            data = duck_array_ops.stack(arrays, axis=axis)
        attrs = dict(first_var.attrs)
        encoding = dict(first_var.encoding)
        if not shortcut:
            for var in variables:
                if var.dims != first_var.dims:
                    raise ValueError(
                        f"Variable has dimensions {list(var.dims)} but first Variable has dimensions {list(first_var.dims)}"
                    )
        return cls(dims, data, attrs, encoding)
def concat ( cls , variables , dim = "concat_dim" , positions = None , shortcut = False ) : if not isinstance ( dim , str ) : ( dim , ) = dim . dims variables = list ( variables ) first_var = variables [ 0 ] arrays = [ v . data for v in variables ] if dim in first_var . dims : axis = first_var . get_axis_num ( dim ) dims = first_var . dims data = duck_array_ops . concatenate ( arrays , axis = axis ) if positions is not None : indices = nputils . inverse_permutation ( np . concatenate ( positions ) ) data = duck_array_ops . take ( data , indices , axis = axis ) else : axis = 0 dims = ( dim , ) + first_var . dims data = duck_array_ops . stack ( arrays , axis = axis ) attrs = dict ( first_var . attrs ) encoding = dict ( first_var . encoding ) if not shortcut : for var in variables : if var . dims != first_var . dims : raise ValueError ( f"Variable has dimensions {list(var.dims)} but first Variable has dimensions {list(first_var.dims)}" ) return cls ( dims , data , attrs , encoding )
Concatenate variables along a new or existing dimension.
Concatenate variables along a new or existing dimension .
"""Concatenate variables along a new or existing dimension.

        Parameters
        ----------
        variables : iterable of Variable
            Arrays to stack together. Each variable is expected to have
            matching dimensions and shape except for along the stacked
            dimension.
        dim : str or DataArray, optional
            Name of the dimension to stack along. This can either be a new
            dimension name, in which case it is added along axis=0, or an
            existing dimension name, in which case the location of the
            dimension is unchanged. Where to insert the new dimension is
            determined by the first variable.
        positions : None or list of array-like, optional
            List of integer arrays which specifies the integer positions to
            which to assign each dataset along the concatenated dimension.
            If not supplied, objects are concatenated in the provided order.
        shortcut : bool, optional
            This option is used internally to speed-up groupby operations.
            If `shortcut` is True, some checks of internal consistency between
            arrays to concatenate are skipped.

        Returns
        -------
        stacked : Variable
            Concatenated Variable formed by stacking all the supplied variables
            along the given dimension.
        """ # can't do this lazily: we need to loop through variables at least # twice # TODO: deprecate this option -- we don't need it for groupby # any more.
cls
variables
dim
positions
shortcut