@@ -447,20 +447,11 @@ class ArrayPointsIndexer(object):
447
447
def __init__ (self , array ):
448
448
self .array = array
449
449
450
- def _prepare_key (self , key , wildcard = False ):
451
- axes = self .array .axes
452
- # 1) complete key & translate (those two cannot be dissociated because to complete
453
- # the key we need to know which axis each key belongs to and to do that, we need to
454
- # translate the key to indices)
455
- translated_key = axes ._translated_key (key )
456
- # 2) transform keys to IGroup and non-Array advanced keys to Array with a combined axis
457
- return axes ._adv_keys_to_combined_axis_la_keys (translated_key , wildcard )
458
-
459
450
def __getitem__ (self , key ):
460
- return self .array .__getitem__ (self . _prepare_key ( key ), translate_key = False )
451
+ return self .array .__getitem__ (key , points = True )
461
452
462
453
def __setitem__ (self , key , value ):
463
- self .array .__setitem__ (self . _prepare_key ( key , wildcard = True ), value , translate_key = False )
454
+ self .array .__setitem__ (key , value , points = True )
464
455
465
456
466
457
# TODO: add support for slices
@@ -583,16 +574,11 @@ class ArrayPositionalPointsIndexer(object):
583
574
def __init__ (self , array ):
584
575
self .array = array
585
576
586
- def _prepare_key (self , key , wildcard = False ):
587
- return self .array .axes ._adv_keys_to_combined_axis_la_keys (key , wildcard )
588
-
589
577
def __getitem__ (self , key ):
590
- return self .array .__getitem__ (self . _prepare_key ( key ) , translate_key = False )
578
+ return self .array .__getitem__ (key , translate_key = False , points = True )
591
579
592
580
def __setitem__ (self , key , value ):
593
- # we still need to prepare the key instead of letting numpy handle everything so that
594
- # existing (integer)Array keys are broadcasted correctly (using axes names).
595
- self .array .__setitem__ (self ._prepare_key (key , wildcard = True ), value , translate_key = False )
581
+ self .array .__setitem__ (key , value , translate_key = False , points = True )
596
582
597
583
598
584
def get_axis (obj , i ):
@@ -1980,9 +1966,9 @@ def sort_key(axis):
1980
1966
1981
1967
sort_axis = renamed_to (sort_axes , 'sort_axis' )
1982
1968
1983
- def __getitem__ (self , key , collapse_slices = False , translate_key = True ):
1984
- raw_broadcasted_key , res_axes , transpose_indices = self . axes . _key_to_raw_and_axes ( key , collapse_slices ,
1985
- translate_key )
1969
+ def __getitem__ (self , key , collapse_slices = False , translate_key = True , points = False ):
1970
+ raw_broadcasted_key , res_axes , transpose_indices = \
1971
+ self . axes . _key_to_raw_and_axes ( key , collapse_slices , translate_key , points , wildcard = False )
1986
1972
res_data = self .data [raw_broadcasted_key ]
1987
1973
if res_axes :
1988
1974
res = Array (res_data , res_axes )
@@ -1992,12 +1978,13 @@ def __getitem__(self, key, collapse_slices=False, translate_key=True):
1992
1978
else :
1993
1979
return res_data
1994
1980
1995
- def __setitem__ (self , key , value , collapse_slices = True , translate_key = True ):
1981
+ def __setitem__ (self , key , value , collapse_slices = True , translate_key = True , points = False ):
1996
1982
# TODO: if key or value has more axes than self, we could use
1997
1983
# total_axes = self.axes + key.axes + value.axes
1998
1984
# expanded = self.expand(total_axes)
1999
1985
# data = np.asarray(expanded.data)
2000
- raw_broadcasted_key , target_axes , _ = self .axes ._key_to_raw_and_axes (key , collapse_slices , translate_key )
1986
+ raw_broadcasted_key , target_axes , _ = \
1987
+ self .axes ._key_to_raw_and_axes (key , collapse_slices , translate_key , points , wildcard = True )
2001
1988
if isinstance (value , Array ):
2002
1989
# TODO: the check_compatible should be included in broadcast_with
2003
1990
value = value .broadcast_with (target_axes )
0 commit comments