numpy.triu_indices#

numpy.triu_indices(n, k=0, m=None)[source]#

返回 (n, m) 数组上三角的索引。

参数:
nint

返回索引有效的数组大小。

kint, 可选

对角线偏移量(有关详细信息,请参见 triu)。

mint, 可选

版本 1.9.0 中新增。

返回数组有效的列维度。默认情况下,m 等于 n

返回值:
inds元组,形状为 (2) 的 ndarray,形状为 (n)

三角形的索引。返回的元组包含两个数组,每个数组都包含数组一个维度上的索引。可用于切片形状为 (n, n) 的 ndarray。

另请参见

tril_indices

类似函数,用于下三角。

mask_indices

接受任意掩码函数的通用函数。

triu, tril

备注

版本 1.4.0 中新增。

示例

>>> import numpy as np

计算两组不同的索引来访问 4x4 数组,一组用于从主对角线开始的上三角部分,另一组用于从主对角线右侧的两个对角线开始。

>>> iu1 = np.triu_indices(4)
>>> iu2 = np.triu_indices(4, 2)

以下是如何使用它们与示例数组一起使用。

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

用于索引

>>> a[iu1]
array([ 0,  1,  2, ..., 10, 11, 15])

以及用于赋值

>>> a[iu1] = -1
>>> a
array([[-1, -1, -1, -1],
       [ 4, -1, -1, -1],
       [ 8,  9, -1, -1],
       [12, 13, 14, -1]])

这些只涵盖了整个数组中的一小部分(主对角线右侧的两个对角线)。

>>> a[iu2] = -10
>>> a
array([[ -1,  -1, -10, -10],
       [  4,  -1,  -1, -10],
       [  8,   9,  -1,  -1],
       [ 12,  13,  14,  -1]])