np.maximum() 和 np.fmax() 都是 NumPy 中用于计算元素逐对最大值的函数,但它们之间有一些区别:
np.maximum()
功能:逐元素比较两个数组,返回对应位置的最大值。
处理 NaN:如果任一元素是 NaN,np.maximum() 会返回 NaN。
示例:
import numpy as np
a = np.array([1, 2, np.nan, 4])
b = np.array([2, 1, 3, np.nan])
result = np.maximum(a, b)
print(result)
# 输出: [ 2. 2. nan nan]
np.fmax()
功能:逐元素比较两个数组,返回对应位置的最大值。
处理 NaN:如果任一元素是 NaN,np.fmax() 会忽略 NaN,并返回非 NaN 的值。如果两个元素都是 NaN,则返回 NaN。
示例:
import numpy as np
a = np.array([1, 2, np.nan, 4])
b = np.array([2, 1, 3, np.nan])
result = np.fmax(a, b)
print(result)
# 输出: [2. 2. 3. 4.]
总结
np.maximum(): 如果任一元素是 NaN,结果中对应位置的元素也会是 NaN。
np.fmax(): 会忽略 NaN,返回非 NaN 的值。
当然,np.minimum()和np.fmin()也是同理