numpy.tril_indices#
- numpy.tril_indices(n, k=0, m=None)[原始碼]#
傳回 (n, m) 陣列下三角部分的索引。
- 參數:
- nint
傳回索引將有效的陣列的列維度。
- kint,選填
對角線偏移量(詳見
tril
)。- mint,選填
傳回陣列將有效的陣列的行維度。預設情況下,m 等於 n。
- 傳回值:
- inds陣列元組
分別為列索引和行索引。列索引以非遞減順序排序,且對應的行索引對於每一列都嚴格遞增。
另請參閱
triu_indices
類似函數,用於上三角形。
mask_indices
接受任意遮罩函數的通用函數。
tril
,triu
範例
>>> import numpy as np
計算兩組不同的索引來存取 4x4 陣列,一組用於從主對角線開始的下三角部分,另一組從主對角線右側兩個對角線開始。
>>> il1 = np.tril_indices(4) >>> il1 (array([0, 1, 1, 2, 2, 2, 3, 3, 3, 3]), array([0, 0, 1, 0, 1, 2, 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[il1] array([ 0, 4, 5, ..., 13, 14, 15])
也適用於賦值
>>> a[il1] = -1 >>> a array([[-1, 1, 2, 3], [-1, -1, 6, 7], [-1, -1, -1, 11], [-1, -1, -1, -1]])
這些涵蓋了幾乎整個陣列(主對角線右側的兩個對角線)。
>>> il2 = np.tril_indices(4, 2) >>> a[il2] = -10 >>> a array([[-10, -10, -10, 3], [-10, -10, -10, -10], [-10, -10, -10, -10], [-10, -10, -10, -10]])