id,node_id,number,state,locked,title,user,body,created_at,updated_at,closed_at,merged_at,merge_commit_sha,assignee,milestone,draft,head,base,author_association,auto_merge,repo,url,merged_by 251611039,MDExOlB1bGxSZXF1ZXN0MjUxNjExMDM5,2757,closed,0,Allow expand_dims() method to support inserting/broadcasting dimensions with size>1,10720577,"This pull request enhances the `expand_dims` method for both `Dataset` and `DataArray` objects to support inserting/broadcasting dimensions with size > 1. It corresponds to this issue https://github.com/pydata/xarray/issues/2710. ## Changes: 1. dataset.expand_dims() method take dict like object where values represent length of dimensions or coordinates of dimesnsions 3. dataarray.expand_dims() method take dict like object where values represent length of dimensions or coordinates of dimesnsions 5. Add alternative option to passing a dict to the dim argument, which is now an optional kwarg, passing in each new dimension as its own kwarg 7. Add expand_dims enhancement from issue 2710 to whats-new.rst ## Included: - [ ] Tests added - [ ] Fully documented, including `whats-new.rst` for all changes and `api.rst` for new API ## What's new: All of the old functionality is still there, so it shouldn't break anyone's existing code that uses it. You can now pass a dim as a dict, where the keys are the new dimensions and the values are either integers (giving the length of the new dimensions) or iterables (giving the coordinates of the new dimensions). ``` import numpy as np import xarray as xr >>> original = xr.Dataset({'x': ('a', np.random.randn(3)), 'y': (['b', 'a'], np.random.randn(4, 3))}, coords={'a': np.linspace(0, 1, 3), 'b': np.linspace(0, 1, 4), 'c': np.linspace(0, 1, 5)}, attrs={'key': 'entry'}) >>> original Dimensions: (a: 3, b: 4, c: 5) Coordinates: * a (a) float64 0.0 0.5 1.0 * b (b) float64 0.0 0.3333 0.6667 1.0 * c (c) float64 0.0 0.25 0.5 0.75 1.0 Data variables: x (a) float64 -1.556 0.2178 0.6319 y (b, a) float64 0.5273 0.6652 0.3418 1.858 ... -0.3519 0.8088 0.8753 Attributes: key: entry >>> original.expand_dims({""d"": 4, ""e"": [""l"", ""m"", ""n""]}) Dimensions: (a: 3, b: 4, c: 5, d: 4, e: 3) Coordinates: * e (e) ",2019-05-09T19:25:40Z,2019-05-09T22:17:56Z,2019-05-09T22:17:53Z,2019-05-09T22:17:53Z,698293e6cdff8be94464af00e8b8f171e8fd1557,,,0,f43abfcc524ff20a0a6aee029118f1a42511b8ed,ab3972294860447f9515c7b7b0a04838db061496,CONTRIBUTOR,,13221727,https://github.com/pydata/xarray/pull/2953,