numpy.
mask_indices
返回访问(n,n)数组的索引,给定一个掩蔽函数。
假定 mask_func 是一个函数,对于一个大小为 (n, n) 带有可能的偏移参数 k ,当作为调用时 mask_func(a, k) 返回一个新数组,其中在某些位置有零(函数如下 triu 或 tril 就这么做)。然后这个函数返回非零值所在的索引。
(n, n)
mask_func(a, k)
triu
tril
返回的索引将对访问形状数组(n,n)有效。
其调用签名类似于 triu , tril . 也就是说, mask_func(x, k) 返回一个布尔数组,形状类似 x . k 是函数的可选参数。
mask_func(x, k)
传递给的可选参数 mask_func . 函数类 triu , tril 采用第二个被解释为偏移量的参数。
这个 n 与位置相对应的索引数组 mask_func(np.ones((n, n)), k) 是True。
mask_func(np.ones((n, n)), k)
参见
triu_indices
tril_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])