首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从数组中返回最大值,而不是数字值

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

Stack Overflow用户
提问于 2015-07-07 12:08:22
回答 2查看 427关注 0票数 1

我有一个数组,它包含浮点值以及NaN值。我取这个数组的中间值。在当前的场景中,中位数可能是一些值或NaN。我的问题是,如果中位数是NaN,它应该从数组中返回最大值,而不是NaN。

数组的例子,

代码语言:javascript
运行
复制
x = np.array([NaN,NaN,0.1,0.002,0.14,NaN,NaN,NaN])

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

如何返回此值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-07 12:27:07

代码语言:javascript
运行
复制
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)
票数 5
EN

Stack Overflow用户

发布于 2015-07-07 12:21:42

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

工作列表= []用于x != NaN: workinglist.append(项目)中的项

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31268175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档