numpy.mask_indices

原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.mask_indices.html

译者:飞龙 UsyiyiCN

校对:(虚位以待)

numpy.mask_indices(n, mask_func, k=0)[source]

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

Assume mask_func is a function that, for a square array a of size (n, n) with a possible offset argument k, when called as mask_func(a, k) returns a new array with zeros in certain locations (functions like triu or tril do precisely this). 然后,此函数返回非零值将位于的索引。

参数:

n:int

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

mask_func:callable

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

k:标量

一个可选参数,传递到mask_functriutril的函数采用第二个参数,将其解释为偏移量。

返回:

indices:数组的元组。

mask_func(np.ones((n, t> n)), 的位置对应的索引的n k)为True。

也可以看看

triutriltriu_indicestril_indices

笔记

版本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])