def __getitem__(self, key): # FIXME add advanced integers indexing isslice, key = _toslice(self.ndim, key) try: if not isslice: if isinstance(key, _booleands): return self.__dataset.getByBoolean(key) if isinstance(key, _integerds): return self.__dataset.getBy1DIndex(key) if _contains_ints_bools_newaxis(key): return self.__dataset.getByIndexes(key) return self.__dataset.getObject(key) return _getslice(self.__dataset, key) except _jarrayindex_exception: raise IndexError
def ravel_multi_index(multi_index, dims, mode='raise'): '''Converts a tuple of coordinate arrays to an array of flat indexes ''' if isinstance(mode, tuple): mode = [_prep_mode.get(m, -1) for m in mode] else: mode = _prep_mode.get(mode, -1) if isinstance(multi_index, _ds): # split single array multi_index = [ _getslice(multi_index, i) for i in range(multi_index.shape[0]) ] single = False if isinstance(multi_index[0], int): single = True multi_index = [ array(m)._jdataset() for m in multi_index ] pos = _dsutils.calcIndexesFromPositions(multi_index, dims, mode) if single: return pos.getObject([]) return pos