计算忽略NaN值的行的最小值

use*_*650 9 python numpy

例如,我有这个数组并计算行的平均值:

a = np.array([[1,2,3],[2,np.NaN,4]])

mins = np.min(a, axis = 1)
Run Code Online (Sandbox Code Playgroud)

问题是输出是:[1. nan].如何在a中忽略nan并获得结果[1 2]?

Sve*_*ach 22

另一个更简洁,更快速的替代方案是使用该numpy.nanmin()功能,它完全符合您的要求.


lej*_*lot 4

您可以使用屏蔽数组

mins = list(np.min(np.ma.masked_array(a, np.isnan(a)), axis=1))
Run Code Online (Sandbox Code Playgroud)