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/7250#issuecomment-1313866757,https://api.github.com/repos/pydata/xarray/issues/7250,1313866757,IC_kwDOAMm_X85OUAQF,4160723,2022-11-14T14:45:39Z,2022-11-14T14:45:39Z,MEMBER,"That's a bug in this method: https://github.com/pydata/xarray/blob/6f9e33e94944f247a5c5c5962a865ff98a654b30/xarray/core/indexing.py#L1528-L1532 Xarray array wrappers for pandas indexes keep track of the original dtype and should restore it when converted into numpy arrays. Something like this should work for the same method: ```python def __array__(self, dtype: DTypeLike = None) -> np.ndarray: if dtype is None: dtype = self.dtype if self.level is not None: return np.asarray( self.array.get_level_values(self.level).values, dtype=dtype ) else: return super().__array__(dtype) ```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1433998942 https://github.com/pydata/xarray/issues/7250#issuecomment-1302258508,https://api.github.com/repos/pydata/xarray/issues/7250,1302258508,IC_kwDOAMm_X85NnuNM,2448579,2022-11-03T15:10:46Z,2022-11-03T15:10:46Z,MEMBER,"Ah very good find! Thanks. maybe this can be fixed, or at least made more consistent. I think `.values` is pulling out of the pandas index (so is promoted) while we do actually have an underlying `int32` array. ``` python >>> ds.stack(b=('a',))['a'].dtype #== ds.stack(b=('a',))['a'].values.dtype dtype('int32') >>> ds.stack(b=('a',))['a'].values.dtype dtype('int64') ``` cc @benbovy ","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1433998942 https://github.com/pydata/xarray/issues/7250#issuecomment-1302239394,https://api.github.com/repos/pydata/xarray/issues/7250,1302239394,IC_kwDOAMm_X85Nnpii,2448579,2022-11-03T14:57:16Z,2022-11-03T14:57:34Z,MEMBER,"Unfortunately this is a pandas thing, so we can't fix it. Pandas only provides `Int64Index` so everything gets cast to that. Fixing that is on the roadmap for pandas 2.0 I think (See https://github.com/pandas-dev/pandas/pull/44819#issuecomment-999790361)","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,1433998942