我有一个数组,它包含浮点值以及NaN值。我取这个数组的中间值。在当前的场景中,中位数可能是一些值或NaN。我的问题是,如果中位数是NaN,它应该从数组中返回最大值,而不是NaN。
数组的例子,
x = np.array([NaN,NaN,0.1,0.002,0.14,NaN,NaN,NaN])
在这个数组中,np.median是NaN。当中位数为NaN时,它应该从数组返回最大值,我的意思是它应该从数组返回(0.14)值。
如何返回此值?
发布于 2015-07-07 12:27:07
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)
发布于 2015-07-07 12:21:42
对于任何操作,您都需要排除NaN以获得答案,然后创建一个只保存相关值的第二个数组,并使用该数组查找答案。
工作列表= []用于x != NaN: workinglist.append(项目)中的项
https://stackoverflow.com/questions/31268175
复制相似问题