- mars.tensor.indices(dimensions, dtype=<class 'int'>, chunk_size=None)¶
Return a tensor representing the indices of a grid.
Compute a tensor where the subtensors contain index values 0,1,… varying only along the corresponding axis.
dimensions (sequence of ints) – The shape of the grid.
dtype (dtype, optional) – Data type of the result.
chunk_size (int or tuple of int or tuple of ints, optional) – Desired chunk size on each dimension
grid – The tensor of grid indices,
grid.shape = (len(dimensions),) + tuple(dimensions).
- Return type
The output shape is obtained by prepending the number of dimensions in front of the tuple of dimensions, i.e. if dimensions is a tuple
(r0, ..., rN-1)of length
N, the output shape is
grid[k]contains the N-D array of indices along the
grid[k,i0,i1,...,iN-1] = ik
>>> import mars.tensor as mt
>>> grid = mt.indices((2, 3)) >>> grid.shape (2, 2, 3) >>> grid.execute() # row indices array([[0, 0, 0], [1, 1, 1]]) >>> grid.execute() # column indices array([[0, 1, 2], [0, 1, 2]])
The indices can be used as an index into a tensor.
>>> x = mt.arange(20).reshape(5, 4) >>> row, col = mt.indices((2, 3)) >>> # x[row, col] # TODO(jisheng): accomplish this if multiple fancy indexing is supported
Note that it would be more straightforward in the above example to extract the required elements directly with