Labeled repr
See original GitHub issueIt may be nice to take advantage of labels to show a different, labeled repr - especially for more than 3 dimensions, I personally find the the numpy array one hard to read.
Some sample data and the current repr
In [103]: d = xr.DataArray(np.arange(200).reshape((2,5,2,10)), dims=('a', 'b', 'c', 'd'),
...: coords={'a': ['A', 'B'], 'b': ['Cat 1', 'Cat 2', 'Cat 3', 'Cat 4', 'Cat 5'],
...: 'c': ['J', 'K']})
In [104]: d
Out[104]:
<xarray.DataArray (a: 2, b: 5, c: 2, d: 10)>
array([[[[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
[ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]],
[[ 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
[ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39]],
[[ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49],
[ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59]],
[[ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69],
[ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79]],
[[ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89],
[ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]]],
[[[100, 101, 102, 103, 104, 105, 106, 107, 108, 109],
[110, 111, 112, 113, 114, 115, 116, 117, 118, 119]],
[[120, 121, 122, 123, 124, 125, 126, 127, 128, 129],
[130, 131, 132, 133, 134, 135, 136, 137, 138, 139]],
[[140, 141, 142, 143, 144, 145, 146, 147, 148, 149],
[150, 151, 152, 153, 154, 155, 156, 157, 158, 159]],
[[160, 161, 162, 163, 164, 165, 166, 167, 168, 169],
[170, 171, 172, 173, 174, 175, 176, 177, 178, 179]],
[[180, 181, 182, 183, 184, 185, 186, 187, 188, 189],
[190, 191, 192, 193, 194, 195, 196, 197, 198, 199]]]])
Coordinates:
* a (a) <U1 'A' 'B'
* b (b) <U5 'Cat 1' 'Cat 2' 'Cat 3' 'Cat 4' 'Cat 5'
* c (c) <U1 'J' 'K'
* d (d) int64 0 1 2 3 4 5 6 7 8 9
The labeled repr could instead look something (not exactly) like this?
<xarray.DataArray (a: 2, b: 5, c: 2, d: 10)>
a: 'A'
b: 'Cat 1'
c x d:
0 2 3 4 5 6 7 8 9 10
J 0 1 2 3 4 5 6 7 8 9
K 10 11 12 13 14 15 16 17 18 19
a: 'A'
b: 'Cat 2'
c x d
<repeat>
...
Coordinates:
* a (a) <U1 'A' 'B'
* b (b) <U5 'Cat 1' 'Cat 2' 'Cat 3' 'Cat 4' 'Cat 5'
* c (c) <U1 'J' 'K'
* d (d) int64 0 1 2 3 4 5 6 7 8 9
Issue Analytics
- State:
- Created 7 years ago
- Comments:8 (6 by maintainers)
Top Results From Across the Web
Python repr Function With Example | repr vs str in Python
This returns the canonical string representation of this object; It has the following syntax: repr(obj, /). It is true for many object types...
Read more >Python Repr() with Examples - TechVidvan
A repr() is used in storing the data of pythonic code in such a way that it can be extracted from the code...
Read more >repr - What are the best practices for __repr__ with ...
Called by the repr() built-in function to compute the “official” string representation of an object. If at all possible, this should look ...
Read more >Python repr() - Programiz
The repr() function returns a printable representation of the given object. In this tutorial, we will learn about Python repr() in detail with...
Read more >Add good __repr__ methods to all public classes #8594
If the class has a label, I think including it is worthwhile since it is user specified; the repr will begin with <...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
After seeing the discussion in #680, I’m wondering if showing the firsts values of the flattened array wouldn’t be enough here, e.g., something like this:
This example is more consistent with the repr of
Dataset
data variables, and similarly we could customize the repr of dask arrays and lazy arrays (loaded from netcdf files) like this:In order to maintain a list of currently relevant issues, we mark issues as stale after a period of inactivity If this issue remains relevant, please comment here; otherwise it will be marked as closed automatically