Skip to content

Keep index dimension when selecting only a single coord #3458

Open
@ngreenwald

Description

MCVE Code Sample

# Your code here
import numpy as np
import xarray as xr

data = np.zeros((10, 4))
example_xr = xr.DataArray(data, coords=[range(10), ["idx0", "idx1", "idx2", "dim3"]], dims=["rows", "cols"])

# desired behavior
subset = example_xr[:, 1:2]
subset.shape

# inclusive indexing means both idx1 and idx2 kept
subset_named1 = example_xr.loc[:, "idx1":"idx2"]
subset_named1.shape

# slicing behavior means that 2nd dimension is dropped
subset_named2 = example_xr.loc[:, "idx1"]
subset_named2.shape

Expected Output

I'd like to be able to use named .loc indexing to select only a single named coord from one dimension, but not have that dimension collapse when subsetting.

Problem Description

I looked, but wasn't able to find anything in the documentation about how to perform this same action using named coords. It works with integer-based slicing.

Output of xr.show_versions()

# Paste the output here xr.show_versions() here

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions