@@ -58,13 +58,16 @@ def dtype(self) -> np.dtype:
58
58
return np .dtype (self .array .dtype .kind + str (self .array .dtype .itemsize ))
59
59
60
60
def _oindex_get (self , key ):
61
- return np . asarray (self .array .oindex [key ], dtype = self . dtype )
61
+ return type (self )( self .array .oindex [key ])
62
62
63
63
def _vindex_get (self , key ):
64
- return np . asarray (self .array .vindex [key ], dtype = self . dtype )
64
+ return type (self )( self .array .vindex [key ])
65
65
66
66
def __getitem__ (self , key ) -> np .ndarray :
67
- return np .asarray (self .array [key ], dtype = self .dtype )
67
+ return type (self )(self .array [key ], dtype = self .dtype )
68
+
69
+ def get_duck_array (self ):
70
+ return duck_array_ops .astype (self .array .get_duck_array (), dtype = self .dtype )
68
71
69
72
70
73
class BoolTypeArray (indexing .ExplicitlyIndexedNDArrayMixin ):
@@ -96,14 +99,16 @@ def dtype(self) -> np.dtype:
96
99
return np .dtype ("bool" )
97
100
98
101
def _oindex_get (self , key ):
99
- return np . asarray (self .array .oindex [key ], dtype = self . dtype )
102
+ return type (self )( self .array .oindex [key ])
100
103
101
104
def _vindex_get (self , key ):
102
- return np . asarray (self .array .vindex [key ], dtype = self . dtype )
105
+ return type (self )( self .array .vindex [key ])
103
106
104
107
def __getitem__ (self , key ) -> np .ndarray :
105
- return np . asarray (self .array [key ], dtype = self . dtype )
108
+ return type (self )( self .array [key ])
106
109
110
+ def get_duck_array (self ):
111
+ return duck_array_ops .astype (self .array .get_duck_array (), dtype = self .dtype )
107
112
108
113
109
114
def _apply_mask (
0 commit comments