示例#1
0
    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
示例#2
0
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