numpy.triu_indices

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.triu_indices.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

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

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

参数:

n:int

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

k:int,可选

对角线偏移(详见triu)。

m:int,可选

版本1.9.0中的新功能。

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

返回:

inds:元组,形状(2)的数组,形状(n

三角形的索引。返回的元组包含两个数组,每个数组的索引沿着数组的一个维度。可用于切割形状的阵列(nn)。

也可以看看

tril_indices
类似的功能,用于下三角形。
mask_indices
通用函数接受任意掩码函数。

triutril

笔记

版本1.4.0中的新功能。

例子

计算两个不同的索引集合以访问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,  3,  5,  6,  7, 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]])