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/1482#issuecomment-1457965323,https://api.github.com/repos/pydata/xarray/issues/1482,1457965323,IC_kwDOAMm_X85W5skL,40465719,2023-03-07T10:58:12Z,2023-03-07T10:58:12Z,NONE,"> As I am not aware of implementation details I am not sure there is a useful link, but maybe progress in #3213 supporting sparse arrays can solve also the jagged array issue.
>
> Long time ago [I asked there a question](https://github.com/pydata/xarray/issues/3213#issuecomment-585668294) about how xarray supports sparse arrays. But what I actually meant were ""Jagged Arrays"". I just was not aware of that term and stumbled over it some days ago the very first time.
I also recently came across [awkward](https://www.youtube.com/watch?v=pvrRFsFqdYs)/jagged/ragged arrays, and that's exactly how I would like to operate on multi-dimensional (2D in [referenced case](https://github.com/pydata/xarray/issues/3213#issuecomment-1013887301)) sparse data:

Instead of allocating memory with NaNs, empty slots are just not materialized by using `pd.SparseDtype(""float"", np.nan)` dtype.
You basically create a dense duck array from sparse dtypes, as the [Pandas sparse user guide](https://pandas.pydata.org/docs/user_guide/sparse.html) shows:

So, all the shape, dtype, and ndim requirements are satisfied, and xarray could implement this as a duck array.
And while you can already wrap sparse duck arrays with `xr.Variable`, I'm not sure if the wrapper maintains the dtype:

","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,243964948