html_url,issue_url,id,node_id,user,created_at,updated_at,author_association,body,reactions,performed_via_github_app,issue https://github.com/pydata/xarray/issues/2460#issuecomment-427615001,https://api.github.com/repos/pydata/xarray/issues/2460,427615001,MDEyOklzc3VlQ29tbWVudDQyNzYxNTAwMQ==,5635139,2018-10-07T00:02:53Z,2018-10-08T19:32:18Z,MEMBER,"I'm writing something up for the docs. But I'm spinning once again. ~Did that example only work because the coords were ints that are being used as index positions?~ Edit: this approach works with a superset of labels, but not a subset For example: ```python In [48]: da = xr.DataArray(np.arange(4), dims=['y'], ...: coords={'y': list('abcd')}) In [49]: da Out[49]: array([0, 1, 2, 3]) Coordinates: * y (y) array([0, 1, 2, 3, 4, 5]) Coordinates: y (a) in ----> 1 da2.sel(a=da.y) /usr/local/lib/python3.7/site-packages/xarray/core/dataarray.py in sel(self, indexers, method, tolerance, drop, **indexers_kwargs) 845 ds = self._to_temp_dataset().sel( 846 indexers=indexers, drop=drop, method=method, tolerance=tolerance, --> 847 **indexers_kwargs) 848 return self._from_temp_dataset(ds) 849 /usr/local/lib/python3.7/site-packages/xarray/core/dataset.py in sel(self, indexers, method, tolerance, drop, **indexers_kwargs) 1620 pos_indexers, new_indexes = remap_label_indexers( 1621 self, indexers=indexers, method=method, tolerance=tolerance) -> 1622 result = self.isel(indexers=pos_indexers, drop=drop) 1623 return result._replace_indexes(new_indexes) 1624 /usr/local/lib/python3.7/site-packages/xarray/core/dataset.py in isel(self, indexers, drop, **indexers_kwargs) 1537 for name, var in iteritems(self._variables): 1538 var_indexers = {k: v for k, v in indexers_list if k in var.dims} -> 1539 new_var = var.isel(indexers=var_indexers) 1540 if not (drop and name in var_indexers): 1541 variables[name] = new_var /usr/local/lib/python3.7/site-packages/xarray/core/variable.py in isel(self, indexers, drop, **indexers_kwargs) 905 if dim in indexers: 906 key[i] = indexers[dim] --> 907 return self[tuple(key)] 908 909 def squeeze(self, dim=None): /usr/local/lib/python3.7/site-packages/xarray/core/variable.py in __getitem__(self, key) 614 array `x.values` directly. 615 """""" --> 616 dims, indexer, new_order = self._broadcast_indexes(key) 617 data = as_indexable(self._data)[indexer] 618 if new_order: /usr/local/lib/python3.7/site-packages/xarray/core/variable.py in _broadcast_indexes(self, key) 485 dims.append(d) 486 if len(set(dims)) == len(dims): --> 487 return self._broadcast_indexes_outer(key) 488 489 return self._broadcast_indexes_vectorized(key) /usr/local/lib/python3.7/site-packages/xarray/core/variable.py in _broadcast_indexes_outer(self, key) 537 new_key.append(k) 538 --> 539 return dims, OuterIndexer(tuple(new_key)), None 540 541 def _nonzero(self): /usr/local/lib/python3.7/site-packages/xarray/core/indexing.py in __init__(self, key) 376 if not np.issubdtype(k.dtype, np.integer): 377 raise TypeError('invalid indexer array, does not have ' --> 378 'integer dtype: {!r}'.format(k)) 379 if k.ndim != 1: 380 raise TypeError('invalid indexer array for {}, must have ' TypeError: invalid indexer array, does not have integer dtype: array(['a', 'b', 'c', 'd'], dtype='