numpy.
diag_indices
返回索引以访问数组的主对角线。
这将返回一组索引,这些索引可用于访问数组的主对角线。 a 具有 a.ndim >= 2 尺寸和形状(N,N,…,N)。为了 a.ndim = 2 这是通常的对角线,因为 a.ndim > 2 这是要访问的一组索引 a[i, i, ..., i] 对于 i = [0..n-1] .
a.ndim >= 2
a.ndim = 2
a.ndim > 2
a[i, i, ..., i]
i = [0..n-1]
数组的大小(沿每个维度),返回的索引可用于这些数组。
维度数。
参见
diag_indices_from
笔记
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]])
现在,我们创建索引来操作三维数组:
>>> 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]]])