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,可選
維度的數量。
範例
>>> 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-D 陣列
>>> 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]]])