np.ma.array 是 NumPy 库中的一个函数,用于创建一个 Masked Array(带掩码的数组)。Masked Array 是一种特殊类型的数组,其中某些元素可能被标记为无效或缺失。在处理这些数组时,这些被标记为无效的元素将被忽略。
函数详解:
numpy.ma.array(object, mask)
参数说明:
object:输入数据,可以是任何可以被转换为数组的对象。
maks:掩码,类型也是array
import numpy as np
data = np.array([1, 2, np.nan, 4, np.inf])
masked_array = np.ma.array(data)
print(masked_array)
输出:
[ 1. 2. nan 4. inf]
import numpy as np
##通过掩码对数据进行筛选
data=np.random.randint(9,size=8)
mask=np.array([0,1,2,3,0,5,0,0])
print("data:",data)
masked_array = np.ma.array(data,mask=mask)
print("masked_array",masked_array)
输出:
data: [5 7 1 5 8 2 2 6]
masked_array [5 -- -- -- 8 -- 2 6]
import numpy as np
# 创建一个示例数组
a = np.array([[1, 2, 3], [4, 5, 6]])
# 创建一个与 a 形状相同的掩码数组
mask = np.array([[True, False, False], [False, True, False]])
# 使用 np.ma.array 创建带掩码的数组
arr = np.ma.array(a, mask=mask)
print("原数组:\n", arr.data) # 输出原数组
print("掩码:\n", arr.mask) # 输出掩码数组
print("有效数据:\n", arr.compressed()) # 输出有效数据(未被掩码覆盖的部分)
输出:
原数组:
[[1 2 3]
[4 5 6]]
掩码:
[[ True False False]
[False True False]]
有效数据:
[2 3 4 6]
在这个示例中,我们创建了一个形状为 (2, 3) 的数组 a,并使用一个形状相同的掩码数组 mask 来标记哪些元素是有效的。通过 np.ma.array 函数,我们创建了一个带掩码的数组 arr。最后,我们打印了原数组、掩码数组和有效数据(未被掩码覆盖的部分)。