numpy.triu_indices#

numpy.triu_indices(n, k=0, m=None)[源代码]#

返回一个 (n, m) 数组的上三角部分的索引.

参数:
nint

返回的索引将有效的数组大小.

kint, 可选

对角偏移(详见 triu).

mint, 可选

在 1.9.0 版本加入.

返回数组将有效的数组的列维度.默认情况下,`m` 取值等于 n.

返回:
inds : 元组, shape(2) 的 ndarrays, shape(n)tuple, ndarrays 的 shape(2), shape(

三角形的索引.返回的元组包含两个数组,每个数组包含沿着数组一个维度的索引.可以用于切片形状为(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]])