繁体   English   中英

从数组返回最大值,而不是数字值

[英]Return maximum value from the array instead of not a number value

我有一个数组,其中包含浮点值以及NaN值。 我正在这个数组的中位数。 在当前情况下,中位数可能是某个值或NaN。 我的问题是,如果中位数为NaN,则应从数组而不是NaN返回最大值。

数组的例子

x = np.array([NaN,NaN,0.1,0.002,0.14,NaN,NaN,NaN])

在此数组中,np.median为NaN。 当中位数为NaN时,它应该从数组中返回最大值,我的意思是它应该从数组中返回(0.14)值。

如何返回该值?

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)

对于任何操作,您都需要排除NaN以获得答案,然后创建第二个仅保存相关值的数组,并使用该数组查找答案。

worklist = []用于x中的项目,如果项目!= NaN:workinglist.append(item)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM