【发布时间】:2020-04-30 20:54:44
【问题描述】:
如果我有一个以 np.nan 开头的数组,max() 和 min() 函数都返回 np.nan
这是它按预期工作的地方:
>>> column_data = np.array([111, np.nan, 112, np.nan, 115, np.nan, 116, np.nan, 117, np.nan, 118, np.nan, 119])
>>> print(max(column_data))
119.0
>>> print(min(column_data))
111.0
现在我在数组的开头添加了一个np.nan,结果搞砸了
>>> column_data = np.array([np.nan, 111, np.nan, 112, np.nan, 115, np.nan, 116, np.nan, 117, np.nan, 118, np.nan, 119])
>>> print(max(column_data))
nan
>>> print(min(column_data))
nan
我试过过滤掉 nan 元素,但还是一样:
>>> print(max(i for i in column_data if i is not np.nan))
nan
>>> print(min(i for i in column_data if i is not np.nan))
nan
这里发生了什么,我该如何解决?
【问题讨论】:
-
你期望它做什么?
-
for max() 给我 119 和 min() 给我 111,就像我的第一个例子,它工作正常