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

如何从多维度 NumPy 数组中选择和阈值 x% 的值?

如何解决如何从多维度 NumPy 数组中选择和阈值 x% 的值?

我有一个形状为 (32,128,128) 的多维 NumPy 数组。对于此数组中的每个条目(形状为 (128,128),我想检查其中是否有 80% 的值大于阈值,例如 0.5。

目前,我正在做这样的事情:

for entry in entries: # entries: (32,128)
    raveled = np.ravel(entry) # entry: (128,128)
    total_sum = (raveled > 0.5).sum()
    proportion = total_sum/len(raveled)

    if proportion > 0.8:
        ...

我似乎无法找到一种有效的方法来做到这一点。任何帮助将不胜感激。

解决方法

x =  np.random.rand(32,128,128)
#check 80%
np.sum(x > 0.5,axis = (1,2)) > 0.8 * 128 * 128

x > 0.5 将为所有值 (32 * 128 * 128) 返回 True/False 布尔值。之后,我们对第 1 轴和第 2 轴 (128 * 128) 求和以提取 True 值的总数,即满足所有 32 个数组的条件并检查数字是否大于 80%

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