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]])