@@ -19,6 +19,24 @@ def __init__(self, data, coordaxis, header=None):
19
19
self .coordaxis = coordaxis
20
20
self .header = header
21
21
22
+ @property
23
+ def shape (self ):
24
+ return self .data .shape
25
+
26
+ def __getitem__ (self , slicer ):
27
+ if isinstance (slicer , str ):
28
+ slicer = self .coordaxis .get_indices (slicer )
29
+ elif isinstance (slicer , list ):
30
+ slicer = np .hstack ([self .coordaxis .get_indices (sub ) for sub in slicer ])
31
+
32
+ if isinstance (slicer , range ):
33
+ slicer = slice (slicer .start , slicer .stop , slicer .step )
34
+
35
+ data = self .data
36
+ if not isinstance (slicer , slice ):
37
+ data = np .asanyarray (data )
38
+ return self .__class__ (data [slicer ], self .coordaxis [slicer ], header = self .header .copy ())
39
+
22
40
@classmethod
23
41
def from_image (klass , img ):
24
42
coordaxis = CoordinateAxis .from_header (img .header )
@@ -57,7 +75,7 @@ def __getitem__(self, slicer):
57
75
Return a sub-sampled CoordinateAxis containing structures
58
76
matching the indices provided.
59
77
"""
60
- if slicer is Ellipsis or slicer == slice (None ):
78
+ if slicer is Ellipsis or isinstance ( slicer , slice ) and slicer == slice (None ):
61
79
return self
62
80
elif isinstance (slicer , slice ):
63
81
slicer = fill_slicer (slicer , len (self ))
0 commit comments