如何解决如何从多维度 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 举报,一经查实,本站将立刻删除。