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/2560#issuecomment-445482824,https://api.github.com/repos/pydata/xarray/issues/2560,445482824,MDEyOklzc3VlQ29tbWVudDQ0NTQ4MjgyNA==,514522,2018-12-08T19:13:08Z,2018-12-08T19:13:08Z,CONTRIBUTOR,"Sorry guys. I've found the problem and solution. The problem is that filesystem not supporting lock mechanism. The solution is to export the following variable: `export HDF5_USE_FILE_LOCKING=FALSE`.","{""total_count"": 2, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 2, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,383057458 https://github.com/pydata/xarray/issues/2560#issuecomment-440909054,https://api.github.com/repos/pydata/xarray/issues/2560,440909054,MDEyOklzc3VlQ29tbWVudDQ0MDkwOTA1NA==,514522,2018-11-22T04:25:05Z,2018-11-22T04:25:05Z,CONTRIBUTOR,https://github.com/limix/limix/blob/2.0.0/limix/qtl/test/test_qtl_xarr.py,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,383057458 https://github.com/pydata/xarray/issues/2410#issuecomment-422368970,https://api.github.com/repos/pydata/xarray/issues/2410,422368970,MDEyOklzc3VlQ29tbWVudDQyMjM2ODk3MA==,514522,2018-09-18T12:17:06Z,2018-09-18T12:17:06Z,CONTRIBUTOR,"I will first try to have both together. I'm well aware that learning by examples (that is true for me at least and apparently to most of people: tldr library), so at first I will try to combine all in one page: 1. Starts with examples, going from simple ones to more complicated one with no definition whasoever. 2. Begins a section defining terms and giving examples that ellucidate them (the first section we have here) 3. Ends with a formal description of the algorithm (the second section we have here) I prefer starting with 2 and 3 for me to actually understand xarray...","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",,359240638 https://github.com/pydata/xarray/issues/2410#issuecomment-421998857,https://api.github.com/repos/pydata/xarray/issues/2410,421998857,MDEyOklzc3VlQ29tbWVudDQyMTk5ODg1Nw==,514522,2018-09-17T12:40:52Z,2018-09-17T12:40:52Z,CONTRIBUTOR,"I have updated mainly the _Indexing and selection data_ section. I'm proposing an indexing notation using `[]` operator vs `()` function call to differentiate between dimension lookup. But more importantly, I'm working out a precise definition of data array indexing in section _Formal indexing definition_. # Xarray definition A **data array** `a` has `D` dimensions, ordered from `0` to `D`. It contains an array of dimensionality `D`. The first dimension of that array is associated with the first dimension of the data array, and so forth. That array is returned by the data array attribute `values` . A **named data array** is a data array with the `name` attribute of string value: ```python >>> import xarray as xr >>> >>> a = xr.DataArray([[0, 1], [2, 3], [4, 5]]) >>> a.name = ""My name"" >>> a array([[0, 1], [2, 3], [4, 5]]) Dimensions without coordinates: dim_0, dim_1 ``` Each data array dimension has an unique `name` attribute of string type and can be accessed via data array `dims` attribute of tuple type. The name of the dimension `i` is `a.dims[i]` : ```python >>> a.dims[0] 'dim_0' ``` A data array can have zero or more coordinates, represented by a dict-like `coords` attribute. A coordinate is a named data array, referred also as **coordinate data array**. Coordinate data arrays have unique names among other coordinate data arrays. A coordinate data array of name `x` can be retrieved by `a.coords[x]` . A coordinate can have zero or more dimensions associated with. A **dimension data array** is a unidimensional coordinate data array associated with one, and only one, dimension having the same name as the coordinate data array itself. A dimension data array has always one, and only one, coordinate. That coordinate has again a dimension data array associated with: ```python >>> import numpy as np >>> >>> a = xr.DataArray(np.arange(6).reshape((3, 2)), dims=[""x"", ""y""], coords={""x"": list(""abc"")}) >>> a array([[0, 1], [2, 3], [4, 5]]) Coordinates: * x (x) >> a.coords[""x""] array(['a', 'b', 'c'], dtype='>> a.coords[""x""].coords[""x""] array(['a', 'b', 'c'], dtype='>> a.loc[""b"", :] array([2, 3]) Coordinates: x >> a = xr.DataArray(np.arange(6).reshape((3, 2)), dims=[""year"", ""country""], coords={""year"": [1990, 1994, 1998], ""country"": [""UK"", ""US""]}) >>> a array([[0, 1], [2, 3], [4, 5]]) Coordinates: * year (year) int64 1990 1994 1998 * country (country) >> a.loc[:, ""UK""] array([0, 2, 4]) Coordinates: * year (year) int64 1990 1994 1998 country >> i_0 array([['a'], ['c']], dtype='>> r_0 array(['a', 'b', 'c'], dtype=' array([['a']], dtype=' array([0, 1]) Coordinates: * x (x) array([[0], [1]]) Coordinates: * x (x) x` and `z|->dim_1` to decide which axis to expand for the additional element. I will choose y-axis because the additional `a` was originally appended to the x-axis. The answer is ``` array([[0], [1]]) Coordinates: x (y, z) >> ans.coords[""x""] array([['a'], ['a']], dtype='