python - 如何将掩码应用于保持形状和检索值的 numpy 数组?
问题描述
我正在做一个图像分割,我创建了一个掩码(布尔数组)。我现在想在保持图像阵列形状的同时提取遮罩区域的成像数据。
由于图像数据太大,这里是我的问题的简化形式:
import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([False, False, True, True])
这就是我本质上想要的:
c = np.array([False, False, 3, 4])
= np.array([0, 0, 3, 4])
我尝试了各种切片方法,包括:
a[b]
np.extract()
np.choose()
np.take
然而,这些要么不返回数组的形状,要么只返回一个布尔值。
谢谢你的帮助。烧烤金枪鱼
解决方案
您可以使用np.where
:
np.where(b, a, 0)
# np.array([0, 0, 3, 4])
推荐阅读
- procedural - 使用 ML 对一堆游戏关卡进行分类
- python - 从 20 多名玩家中找到最均匀的 5V5 比赛
- solidity - 在我用于测试的 js 文件中。我将发送交易调用到智能合约,那么 value 和 gas 之间有什么区别:
- regex - Scala Regex:匹配非单个字符输入
- asp.net-core - 如何使用 ASP.NET Core 计算用户之间的距离
- file - 使用 SSIS 导入 Fixedwidth 文件
- amazon-web-services - kops 'protectKernelDefaults' 标志和 'EventRateLimit' 准入插件不起作用
- asp.net-web-api - 尝试激活“AspNetCoreRateLimit.IpRateLimitMiddleware”时无法解析“AspNetCoreRateLimit.IProcessingStrategy”类型的服务
- sql - 如何从字符串 SQL 中提取数字
- acumatica - Acumatica:如何使用 REST API 覆盖销售订单中的 Bill-To Address 和 Ship-To Address