numpy.diag_indices#
- numpy.diag_indices(n, ndim=2)[源代码]#
返回访问数组主对角线的索引.
这将返回一个索引元组,可以用来访问具有
a.ndim >= 2
维度和形状 (n, n, …, n) 的数组 a 的主对角线.对于a.ndim = 2
这是通常的对角线,对于a.ndim > 2
这是用于访问a[i, i, ..., i]
的索引集合,其中i = [0..n-1]
.- 参数:
- nint
返回的索引可以使用的数组在每个维度上的大小.
- ndimint, 可选
维度的数量.
备注
在 1.4.0 版本加入.
示例
>>> import numpy as np
创建一组索引来访问 (4, 4) 数组的对角线:
>>> di = np.diag_indices(4) >>> di (array([0, 1, 2, 3]), array([0, 1, 2, 3])) >>> 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[di] = 100 >>> a array([[100, 1, 2, 3], [ 4, 100, 6, 7], [ 8, 9, 100, 11], [ 12, 13, 14, 100]])
现在,我们创建索引来操作一个3维数组:
>>> d3 = np.diag_indices(2, 3) >>> d3 (array([0, 1]), array([0, 1]), array([0, 1]))
并使用它将一个全零数组的对角线设置为1:
>>> a = np.zeros((2, 2, 2), dtype=int) >>> a[d3] = 1 >>> a array([[[1, 0], [0, 0]], [[0, 0], [0, 1]]])