This is a pre-release version (latest). Go to latest (2.4.4)
{ } Raw JSON

bundles / numpy latest / numpy / mask_indices

function

numpy:mask_indices

source: /dev/numpy/build-install/usr/lib/python3.14/site-packages/numpy/lib/_twodim_base_impl.py :838

Signature

def   mask_indices ( n mask_func k = 0 )

Summary

Return the indices to access (n, n) arrays, given a masking function.

Extended Summary

Assume mask_func is a function that, for a square array a of size (n, n) with a possible offset argument k, when called as mask_func(a, k) returns a new array with zeros in certain locations (functions like triu or tril do precisely this). Then this function returns the indices where the non-zero values would be located.

Parameters

n : int

The returned indices will be valid to access arrays of shape (n, n).

mask_func : callable

A function whose call signature is similar to that of triu, tril. That is, mask_func(x, k) returns a boolean array, shaped like x. k is an optional argument to the function.

k : scalar

An optional argument which is passed through to mask_func. Functions like triu, tril take a second argument that is interpreted as an offset.

Returns

indices : tuple of arrays.

The n arrays of indices corresponding to the locations where mask_func(np.ones((n, n)), k) is True.

Examples

import numpy as np
These are the indices that would allow you to access the upper triangular part of any 3x3 array:
iu = np.mask_indices(3, np.triu)
For example, if `a` is a 3x3 array:
a = np.arange(9).reshape(3, 3)
a
a[iu]
An offset can be passed also to the masking function. This gets us the indices starting on the first diagonal right of the main one:
iu1 = np.mask_indices(3, np.triu, 1)
with which we now extract only three elements:
a[iu1]

See also

tril
tril_indices
triu
triu_indices

Aliases

  • numpy.mask_indices