Full traceback
```
TypeError Traceback (most recent call last)
in
1 dim0_n = 100
2 d = xr.DataArray(np.arange(dim0_n),coords={'dim0':np.linspace(0,1,num=dim0_n)},dims=('dim0',))
----> 3 d.sel(dim0=slice(None,None,0.1))
4 # expected 0,10,20,...,90
5 # instead get a TypeError (traceback below)
~/miniconda3/lib/python3.9/site-packages/xarray/core/dataarray.py in sel(self, indexers, method, tolerance, drop, **indexers_kwargs)
1252 Dimensions without coordinates: points
1253 """"""
-> 1254 ds = self._to_temp_dataset().sel(
1255 indexers=indexers,
1256 drop=drop,
~/miniconda3/lib/python3.9/site-packages/xarray/core/dataset.py in sel(self, indexers, method, tolerance, drop, **indexers_kwargs)
2231 self, indexers=indexers, method=method, tolerance=tolerance
2232 )
-> 2233 result = self.isel(indexers=pos_indexers, drop=drop)
2234 return result._overwrite_indexes(new_indexes)
2235
~/miniconda3/lib/python3.9/site-packages/xarray/core/dataset.py in isel(self, indexers, drop, missing_dims, **indexers_kwargs)
2093 var_indexers = {k: v for k, v in indexers.items() if k in var_value.dims}
2094 if var_indexers:
-> 2095 var_value = var_value.isel(var_indexers)
2096 if drop and var_value.ndim == 0 and var_name in coord_names:
2097 coord_names.remove(var_name)
~/miniconda3/lib/python3.9/site-packages/xarray/core/variable.py in isel(self, indexers, missing_dims, **indexers_kwargs)
1164
1165 key = tuple(indexers.get(dim, slice(None)) for dim in self.dims)
-> 1166 return self[key]
1167
1168 def squeeze(self, dim=None):
~/miniconda3/lib/python3.9/site-packages/xarray/core/variable.py in __getitem__(self, key)
808 array `x.values` directly.
809 """"""
--> 810 dims, indexer, new_order = self._broadcast_indexes(key)
811 data = as_indexable(self._data)[indexer]
812 if new_order:
~/miniconda3/lib/python3.9/site-packages/xarray/core/variable.py in _broadcast_indexes(self, key)
647
648 if all(isinstance(k, BASIC_INDEXING_TYPES) for k in key):
--> 649 return self._broadcast_indexes_basic(key)
650
651 self._validate_indexers(key)
~/miniconda3/lib/python3.9/site-packages/xarray/core/variable.py in _broadcast_indexes_basic(self, key)
675 dim for k, dim in zip(key, self.dims) if not isinstance(k, integer_types)
676 )
--> 677 return dims, BasicIndexer(key), None
678
679 def _validate_indexers(self, key):
~/miniconda3/lib/python3.9/site-packages/xarray/core/indexing.py in __init__(self, key)
382 k = int(k)
383 elif isinstance(k, slice):
--> 384 k = as_integer_slice(k)
385 else:
386 raise TypeError(
~/miniconda3/lib/python3.9/site-packages/xarray/core/indexing.py in as_integer_slice(value)
359 start = as_integer_or_none(value.start)
360 stop = as_integer_or_none(value.stop)
--> 361 step = as_integer_or_none(value.step)
362 return slice(start, stop, step)
363
~/miniconda3/lib/python3.9/site-packages/xarray/core/indexing.py in as_integer_or_none(value)
353
354 def as_integer_or_none(value):
--> 355 return None if value is None else operator.index(value)
356
357
TypeError: 'float' object cannot be interpreted as an integer
```
**Anything else we need to know?**:
I think a warning in the documentation would be nice.
It happened that I was giving integer values to c and xarray was subsetting datasets in an entirely different way that the one intended. It took noticing a downstream effect to find this behavior.
**Environment**: