微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

nan_policy ='omit' 在 scipy.stats.mode() 中不起作用

如何解决nan_policy ='omit' 在 scipy.stats.mode() 中不起作用

我正在尝试查找存储在 b 中的返回次数最多的标签,使用 a 作为布尔数组来确定要用作哪些标签

a = np.array([[1.0,0.,0.],[1.0,1.]])
b = np.array(['a','b','a'])
x = np.where(a,b,np.nan)
x
# returns:
# array([['a','nan','nan'],#        ['a','a']],dtype='<U32')

为了找到模式,调用scipy.stats.mode()

import scipy.stats
lb,_ = scipy.stats.mode(x,axis = 1,nan_policy ='omit')
lb

它回来了

array([['nan'],['a']],dtype='<U32')

但是,如果我正确理解“省略”,则不应返回“nan”的任何结果。我想忽略所有 nan。

我已检查 scipy 版本为 1.14.1。

** 更新: 可能是数组 b 由字符串而不是 int/float 组成的问题。 除了索引 b 并稍后按索引检索 b 中的标签之外,还有其他解决方案吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。