我有一个包含浮点值和NaN值的数组。我正在拿这个数组的中位数。在当前情景中,中位数可能是某个值或NaN。我的问题是,如果中位数是NaN,它应该从数组返回最大值而不是NaN。
数组示例
x = np.array([NaN,NaN,0.1,0.002,0.14,NaN,NaN,NaN])
在这个数组中,np.median是NaN。当中位数是NaN然后它应该从数组返回最大值,我的意思是它应该从数组返回(0.14)值。
如何返回此值?
答案 0 :(得分:5)
import numpy as np
from numpy import NaN
x = np.array([NaN,NaN,0.1,0.002,0.14,NaN,NaN,NaN])
def getMedian(arr):
med = np.median(arr)
if np.isnan(med):
return np.nanmax(arr)
else:
return med
print getMedian(x)
答案 1 :(得分:0)
对于任何操作,您需要排除NaN以获得您在创建第二个数组之后的答案,该数组仅包含相关值并使用该数组来查找答案。
workinglist = [] 对于x中的项目 if item!= NaN: workinglist.append(项目)