📅  最后修改于: 2023-12-03 14:46:35.791000             🧑  作者: Mango
在Python中,如果要查找数组或数组的轴上忽略NaN值的最大值,可以使用numpy(np)中的 np.nanmax()
函数。np.nanmax()函数返回轴上的最大值或全局最大值,忽略NaN值。
numpy.nanmax(arr, axis=None)
参数说明:
arr
: 输入数组,可以是列表(list)、元组(tuple)、数组(array),但需要是1-D或更高维度的数组。axis
: 需要沿着它计算的轴。默认情况下,会将所有元素看作一个整体进行计算。numpy.nanmax()
函数返回输入数组中忽略NaN值的最大值。如果所有元素都是 NaN,则返回 NaN。
import numpy as np
arr = np.array([[1, 2, np.nan], [4, np.nan, 6], [7, 8, 9]])
print("数组为:")
print(arr)
print("\nnp.nanmax(arr) 输出全局最大值:", np.nanmax(arr))
print("\nnp.nanmax(arr, axis=0) 输出每列最大值:", np.nanmax(arr, axis=0))
print("\nnp.nanmax(arr, axis=1) 输出每行最大值:", np.nanmax(arr, axis=1))
输出结果如下:
数组为:
[[ 1. 2. nan]
[ 4. nan 6.]
[ 7. 8. 9.]]
np.nanmax(arr) 输出全局最大值: 9.0
np.nanmax(arr, axis=0) 输出每列最大值: [7. 8. 9.]
np.nanmax(arr, axis=1) 输出每行最大值: [2. 6. 9.]
在上述示例中,我们创建了一个3x3的数组,其中有一些元素被设置为NaN。然后我们使用 np.nanmax()
函数来计算数组的最大值。
np.nanmax(arr)
输出全局最大值: 9.0np.nanmax(arr, axis=0)
输出每列最大值: [7. 8. 9.]np.nanmax(arr, axis=1)
输出每行最大值: [2. 6. 9.]可以看出,np.nanmax()
函数可以忽略NaN值并返回所需的最大值。这在处理缺失值的数据时非常有用。