numpy.mask_indices#
- numpy.mask_indices(n, mask_func, k=0)[source]#
给定一个掩码函数,返回用于访问 (n, n) 数组的索引。
假设 mask_func 是一个函数,对于一个大小为
(n, n)的方形数组 a,可能有一个偏移参数 k,当调用mask_func(a, k)时,它会返回一个在某些位置为零的新数组(例如triu或tril函数就是这样做的)。然后,此函数返回非零值所在位置的索引。- 参数:
- 返回:
- indicestuple of arrays.
对应于
mask_func(np.ones((n, n)), k)为 True 的位置的 n 个索引数组。
另请参阅
示例
>>> 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])