在 Numpy 中屏蔽出现无效值 NaN 或 inf 的数组元素
numpyserver side programmingprogramming更新于 2025/8/15 2:22:17
要屏蔽出现无效值(NaN 或 inf)的数组,请使用 Python Numpy 中的 numpy.ma.masked_invalid() 方法。此函数是 masked_where 的快捷方式,条件为 ~(np.isfinite(a))。任何预先存在的掩码都会被保留。仅适用于数据类型为 NaN 或 inf 有意义的数组(例如浮点类型),但接受任何类似数组的对象。
屏蔽数组是标准 numpy.ndarray 和掩码的组合。掩码要么是 nomask,表示关联数组中的任何值都是无效的;要么是一个布尔值数组,用于确定关联数组中每个元素的值是否有效。
步骤
首先,导入所需的库 −
import numpy as np import numpy.ma as ma
使用 numpy.array() 方法创建一个包含浮点元素的数组 −
arr = np.array([91.6, 73.8, 29.2, 49.9, 39.7, 73.5, 87.6, 51.1])
print("数组...
", arr)
获取数组的类型−
print("
数组类型...
", arr.dtype)
获取数组的维度 −
print("
数组维度...
",arr.ndim)
获取数组的形状 −
print("
我们的数组形状...
",arr.shape)
获取数组元素的数量 −
print("
数组中元素的数量...
",arr.size)
为数组值设置 NaN 或 inf −
arr[1] = np.NaN
arr[3] = np.PINF
arr[6] = np.NaN
arr[7] = np.PINF
print("
显示更新后的数组...
",arr)
要屏蔽出现无效值(NaN 或 inf)的数组,请使用 numpy.ma.masked_invalid() 方法。这里,我们将设置一个区间,即屏蔽值在 55 到 90 之间。
print("
结果...
",ma.masked_invalid(arr))
示例
import numpy as np
import numpy.ma as ma
# 使用 numpy.array() 方法创建一个包含浮点元素的数组
arr = np.array([91.6, 73.8, 29.2, 49.9, 39.7, 73.5, 87.6, 51.1])
print("数组...
", arr)
# Get the type pf array
print("
数组类型...
", arr.dtype)
# 获取数组的维度
print("
数组维度...
",arr.ndim)
# 获取数组的形状
print("
我们的数组形状...
",arr.shape)
# Get the number of elements of the Array
print("
数组中元素的数量...
",arr.size)
# Set NaNs or infs for array values
arr[1] = np.NaN
arr[3] = np.PINF
arr[6] = np.NaN
arr[7] = np.PINF
print("
显示更新后的数组...
",arr)
# 要屏蔽出现无效值(NaN 或 inf)的数组,请使用 Python Numpy 中的 numpy.ma.masked_invalid() 方法
# 在这里,我们将设置间隔,即屏蔽 55 到 90 之间的值
print("
结果...
",ma.masked_invalid(arr))
输出
数组... [91.6 73.8 29.2 49.9 39.7 73.5 87.6 51.1] 数组类型... float64 数组维度... 1 我们的数组形状... (8,) 数组中元素的数量... 8 显示更新后的数组... [91.6 nan 29.2 inf 39.7 73.5 nan inf] 结果... [91.6 -- 29.2 -- 39.7 73.5 -- --]

