📅  最后修改于: 2023-12-03 14:44:49.462000             🧑  作者: Mango
numpy.mask_indices(condition, shape)
函数返回一个包含布尔值的数组,该布尔值数组用于对数据进行筛选,同时返回一个包含构成布尔值为true的数据元素的索引的数组。将返回的索引用于数据数组,则可以选择只选取符合条件的数据。此函数用于在多维数组中获得具有特定条件的元素的索引。
numpy.mask_indices(condition, shape)
condition
: 筛选条件,输入一个bool数组,一般使用布尔表达式来实现。
shape
: 数组的形式,一个表示输入条件数组的形状。
该函数返回一个元组类型(x,y),其中x和y都是整数数组。X和Y分别是条件数组的元素为true的行和列的坐标索引。
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
x, y = np.mask_indices(a>3, a.shape)
print(x) # 输出: [1 1 2 2 2]
print(y) # 输出: [0 1 0 1 2]
在以上示例中,我们从数组a
中选择了对应元素大于3的所有坐标索引。返回的是行索引和列索引两个数组。
此函数由于返回的数组维度是基于输入数组的形状而来,因此最好使用np.transpose()
函数调整其大小和方向。此外,需要注意的是,当输入参数中有一个非数组类型时,它们不能被广播(broadcasting)。如果其中一个输入参数是标量,则需要使用np.array()
函数将其转化为相似的形状。