flopscope.

flopscope.numpy.triu_indices_from

fnp.triu_indices_from(arr, k=0)[flopscope source][numpy source]

Return the indices for the upper-triangle of arr.

Adapted from NumPy docs np.triu_indices_from

Areacore
Typefree
Cost
0
Flopscope Context

Return upper-triangle indices for given array.

See triu_indices for full details.

Parameters

arr:ndarray, shape(N, N)

The indices will be valid for square arrays.

k:int, optional

Diagonal offset (see triu for details).

Returns

triu_indices_from:tuple, shape(2) of ndarray, shape(N)

Indices for the upper-triangle of arr.

See also

Examples

>>> import flopscope.numpy as fnp

Create a 4 by 4 array

>>> a = flops.arange(16).reshape(4, 4)
>>> a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])

Pass the array to get the indices of the upper triangular elements.

>>> triui = flops.triu_indices_from(a)
>>> triui
(array([0, 0, 0, 0, 1, 1, 1, 2, 2, 3]), array([0, 1, 2, 3, 1, 2, 3, 2, 3, 3]))
>>> a[triui]
array([ 0,  1,  2,  3,  5,  6,  7, 10, 11, 15])

This is syntactic sugar for triu_indices().

>>> flops.triu_indices(a.shape[0])
(array([0, 0, 0, 0, 1, 1, 1, 2, 2, 3]), array([0, 1, 2, 3, 1, 2, 3, 2, 3, 3]))

Use the k parameter to return the indices for the upper triangular array from the k-th diagonal.

>>> triuim1 = flops.triu_indices_from(a, k=1)
>>> a[triuim1]
array([ 1,  2,  3,  6,  7, 11])