NumPy参考 >例行程序 >Indexing routines > numpy.diag_indices
numpy.
diag_indices
(n,ndim = 2 )[源代码] ¶返回索引以访问数组的主对角线。
这将返回一个索引元组,可用于访问具有尺寸和形状(n,n,…,n)的数组a的主对角线。对于这是通常的对角线,为
这是一组指标的访问
的。a.ndim >= 2
a.ndim = 2
a.ndim > 2
a[i, i, ..., i]
i = [0..n-1]
可以使用返回索引的数组的每个维度的大小。
尺寸数。
也可以看看
笔记
1.4.0版的新功能。
例子
创建一组索引以访问(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]])
现在,我们创建索引来操纵3D数组:
>>> 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]]])