numpy.mask_indices#
- numpy.mask_indices(n, mask_func, k=0)[原始碼]#
傳回索引以存取 (n, n) 陣列,給定一個遮罩函數。
假設 mask_func 是一個函數,對於大小為
(n, n)
的方形陣列 a,具有可能的偏移量參數 k,當呼叫為mask_func(a, k)
時,會傳回一個新的陣列,在特定位置為零(如triu
或tril
等函數正是如此)。那麼此函數會傳回非零值所在位置的索引。- 參數:
- 傳回值:
- indices陣列的元組。
n 個索引陣列的元組,對應於
mask_func(np.ones((n, n)), k)
為 True 的位置。
參見
範例
>>> import numpy as np
這些索引可讓您存取任何 3x3 陣列的上三角部分
>>> iu = np.mask_indices(3, np.triu)
例如,如果 a 是一個 3x3 陣列
>>> a = np.arange(9).reshape(3, 3) >>> a array([[0, 1, 2], [3, 4, 5], [6, 7, 8]]) >>> a[iu] array([0, 1, 2, 4, 5, 8])
偏移量也可以傳遞給遮罩函數。這會取得從主對角線右側第一個對角線開始的索引
>>> iu1 = np.mask_indices(3, np.triu, 1)
藉此,我們現在僅提取三個元素
>>> a[iu1] array([1, 2, 5])