numpy.mask_indices

numpy.mask_indices(n, mask_func, k=0)[源代码]

返回访问(n,n)数组的索引,给定一个掩蔽函数。

假定 mask_func 是一个函数,对于一个大小为 (n, n) 带有可能的偏移参数 k ,当作为调用时 mask_func(a, k) 返回一个新数组,其中在某些位置有零(函数如下 triutril 就这么做)。然后这个函数返回非零值所在的索引。

参数
n利息

返回的索引将对访问形状数组(n,n)有效。

mask_func可赎回的

其调用签名类似于 triutril . 也就是说, mask_func(x, k) 返回一个布尔数组,形状类似 x . k 是函数的可选参数。

k标量

传递给的可选参数 mask_func . 函数类 triutril 采用第二个被解释为偏移量的参数。

返回
indices数组的元组。

这个 n 与位置相对应的索引数组 mask_func(np.ones((n, n)), k) 是True。

笔记

1.4.0 新版功能.

实例

这些索引允许您访问任何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])