numpy.indices(dimensions, dtype=<class'int'>, sparse=False)
Return an array representing the indices of a grid.
Compute an array where the subarrays contain index values 0, 1, … varying only along the corresponding axis.
Parameters:dimensionssequence of intsThe shape of the grid.
dtypedtype, optionalData type of the result.
sparseboolean, optionalReturn a sparse representation of the grid instead of a dense representation. Default is False.
Returns:gridone ndarray or tuple of ndarraysIf sparse is False:Returns one array of grid indices, grid.shape=(len(dimensions),)+tuple(dimensions).
If sparse is True:Returns a tuple of arrays, with grid[i].shape=(1,...,1,dimensions[i],1,...,1) with dimensions[i] in the ith place
Notes
The output shape in the dense case 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 (N,r0,...,rN-1).
The subarrays grid[k] contains the N-D array of indices along the k-th axis. Explicitly:
grid[k,i0,i1,...,iN-1]=ikExamples
>>> importnumpyasnp>>> grid=np.indices((2,3))>>> grid.shape(2, 2, 3)>>> grid[0]# row indicesarray([[0, 0, 0], [1, 1, 1]])>>> grid[1]# column indicesarray([[0, 1, 2], [0, 1, 2]])The indices can be used as an index into an array.
>>> x=np.arange(20).reshape(5,4)>>> row,col=np.indices((2,3))>>> x[row,col]array([[0, 1, 2], [4, 5, 6]])Note that it would be more straightforward in the above example to extract the required elements directly with x[:2,:3].
If sparse is set to true, the grid will be returned in a sparse representation.
>>> i,j=np.indices((2,3),sparse=True)>>> i.shape(2, 1)>>> j.shape(1, 3)>>> i# row indicesarray([[0], [1]])>>> j# column indicesarray([[0, 1, 2]])