id,node_id,number,title,user,state,locked,assignee,milestone,comments,created_at,updated_at,closed_at,author_association,active_lock_reason,draft,pull_request,body,reactions,performed_via_github_app,state_reason,repo,type
2090281639,I_kwDOAMm_X858lyqn,8628,objects remain unserializable after reset_index ,16033750,closed,0,4160723,,1,2024-01-19T11:03:56Z,2024-01-31T17:42:30Z,2024-01-31T17:42:30Z,NONE,,,,"### What happened?
With the 2024.1 release, I am unable to write objects to netCDF after having stacked dimensions with `.stack()` and called `.reset_index()` to get rid of the multi-index
### What did you expect to happen?
_No response_
### Minimal Complete Verifiable Example
```Python
import numpy as np
import xarray as xr
da = xr.DataArray(np.zeros([2, 3]), dims=[""x"", ""y""])
da = da.stack(point=(""x"", ""y""))
da = da.reset_index(""point"")
da.to_netcdf(""test.nc"")
```
### MVCE confirmation
- [X] Minimal example — the example is as focused as reasonably possible to demonstrate the underlying issue in xarray.
- [X] Complete example — the example is self-contained, including all data and the text of any traceback.
- [X] Verifiable example — the example copy & pastes into an IPython prompt or [Binder notebook](https://mybinder.org/v2/gh/pydata/xarray/main?urlpath=lab/tree/doc/examples/blank_template.ipynb), returning the result.
- [X] New issue — a search of GitHub Issues suggests this is not a duplicate.
- [X] Recent environment — the issue occurs with the latest version of xarray and its dependencies.
### Relevant log output
```Python
86 def ensure_not_multiindex(var: Variable, name: T_Name = None) -> None:
87 if isinstance(var._data, indexing.PandasMultiIndexingAdapter):
---> 88 raise NotImplementedError(
89 f""variable {name!r} is a MultiIndex, which cannot yet be ""
90 ""serialized. Instead, either use reset_index() ""
91 ""to convert MultiIndex levels into coordinate variables instead ""
92 ""or use https://cf-xarray.readthedocs.io/en/latest/coding.html.""
93 )
NotImplementedError: variable 'x' is a MultiIndex, which cannot yet be serialized. Instead, either use reset_index() to convert MultiIndex levels into coordinate variables instead or use https://cf-xarray.readthedocs.io/en/latest/coding.html.
```
### Anything else we need to know?
Creating the stacked object from scratch and saving it to netCDF works fine. The difference is that `type(da.x.variable._data)` is `xarray.core.indexing.PandasMultiIndexingAdapter` if it was stacked and reset and `numpy.ndarray` if it's created from scratch
### Environment
INSTALLED VERSIONS
------------------
commit: None
python: 3.11.7 | packaged by conda-forge | (main, Dec 23 2023, 14:43:09) [GCC 12.3.0]
python-bits: 64
OS: Linux
OS-release: 5.15.133.1-microsoft-standard-WSL2
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: C.UTF-8
LOCALE: ('en_US', 'UTF-8')
libhdf5: 1.14.3
libnetcdf: 4.9.2
xarray: 2024.1.0
pandas: 2.1.4
numpy: 1.26.3
scipy: 1.11.4
netCDF4: 1.6.5
pydap: None
h5netcdf: 1.2.0
h5py: 3.10.0
Nio: None
zarr: 2.16.1
cftime: 1.6.3
nc_time_axis: None
iris: None
bottleneck: 1.3.7
dask: 2024.1.0
distributed: None
matplotlib: 3.8.2
cartopy: 0.22.0
seaborn: 0.13.1
numbagg: None
fsspec: 2023.12.2
cupy: None
pint: 0.23
sparse: None
flox: None
numpy_groupies: None
setuptools: 69.0.3
pip: 23.3.2
conda: None
pytest: 7.4.4
mypy: None
IPython: 8.20.0
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/8628/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue
357629971,MDU6SXNzdWUzNTc2Mjk5NzE=,2401,DataArray.mean() produces wrong result for float32 arrays of particular shapes ,16033750,closed,0,,,1,2018-09-06T12:21:57Z,2018-09-06T13:17:13Z,2018-09-06T13:15:17Z,NONE,,,,"#### Code Sample
```python
import numpy as np
import xarray as xr
np.random.seed(42)
dims = ('a', 'b', 'c', 'd')
shape = (10, 10, 500, 500)
coords = {d: np.arange(s) for d, s in zip(dims, shape)}
# Using data with non-normal distribution
data = np.random.lognormal(size=shape)
data = data.astype(np.float32)
da = xr.DataArray(data, coords=coords, dims=dims)
# Numpy method gives the correct value
print(da.values.mean())
# Explicitly specifying all axis gives the correct value
print(da.mean(axis=(0, 1, 2, 3)))
# Default DataArray mean method gives incorrect value
print(da.mean()) # <- Problem arise here
# float64 arrays produce the correct value
print(da.astype(np.float64).mean())
```
This is the output I see:
```
1.6489075
array(1.648908, dtype=float32)
array(1.517693)
array(1.648907)
```
#### Problem description
Wrong mean value calculated by DataArray.mean() method with default arguments. I have only observed the problem for float32 arrays. It appears to be sensitive to the shape of the array, e.g. a shape of (10, 10, 10, 10) seems to be fine.
#### Expected Output
This is the output I expect for the sample above:
```
1.6489075
array(1.648908, dtype=float32)
array(1.648908, dtype=float32)
array(1.648907)
```
INSTALLED VERSIONS
------------------
commit: None
python: 3.6.6.final.0
python-bits: 64
OS: Linux
OS-release: 4.15.0-33-generic
machine: x86_64
processor: x86_64
byteorder: little
LC_ALL: None
LANG: en_US.UTF-8
LOCALE: en_US.UTF-8
xarray: 0.10.8
pandas: 0.23.4
numpy: 1.15.1
scipy: 1.1.0
netCDF4: 1.4.1
h5netcdf: 0.6.2
h5py: 2.8.0
Nio: None
zarr: None
bottleneck: 1.2.1
cyordereddict: None
dask: 0.19.0
distributed: 1.23.0
matplotlib: 2.2.3
cartopy: 0.16.0
seaborn: 0.9.0
setuptools: 40.2.0
pip: 18.0
conda: 4.5.11
pytest: 3.7.4
IPython: 6.5.0
sphinx: None
","{""url"": ""https://api.github.com/repos/pydata/xarray/issues/2401/reactions"", ""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,completed,13221727,issue