python - 如何使用较低的暗淡数组作为掩码创建一个 numpy 掩码数组?
问题描述
认为
a = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
mask = [1, 0, 1]
我想
a[mask] == [
[1, 2, 3],
[False, False, False],
[7, 8, 9],
]
或同等学历。
意思是,我想用 访问a
,mask
wheremask
是较低维度的,并有自动广播。我想np.ma.array
在mask=
参数的构造函数中使用它。
解决方案
这应该有效。请注意,您的掩码具有相反的含义np.ma.masked_array
,其中1
表示已删除,因此我反转了您的掩码:
>>> a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
>>> mask = ~np.array([1, 0, 1], dtype=np.bool) # Note - inverted mask.
>>> masked_a = np.ma.masked_array(
... a,
... np.repeat(mask, a.shape[1]).reshape(a.shape)
... )
>>> masked_a
masked_array(
data=[[1, 2, 3],
[--, --, --],
[7, 8, 9]],
mask=[[False, False, False],
[ True, True, True],
[False, False, False]],
fill_value=999999)
推荐阅读
- sql - 在 T-SQL 中将多行转换为具有多列的一行
- tensorflow - 如何调试自定义损失函数?
- python - 并行化使用多处理运行进程顺序而不是同时
- excel - Excel Vba:循环通过用户窗体控件来计数和识别空文本框
- microsoft-teams - MS Teams - iOS 上的 getAuthToken API 失败
- mongodb - 为什么子文档 ID 作为文档 ID 返回?
- robotframework - 使用 RobotFrameWork 的 Tosa 拼图:从某个点到某个点读取字符串文本
- javascript - 如何在反应中将给定数量的列作为div元素附加到另一个div元素上
- docker - 如何从 cp-enterprise-kafka:6.2.1 迁移到 cp-kafka:6.2.1 docker 镜像?它对我来说失败了
- c# - 将 GridViewColumn 绑定到列表中的空属性