如何在 python 中使用掩码将特定元素归零?

Posted

技术标签:

【中文标题】如何在 python 中使用掩码将特定元素归零?【英文标题】:How to zero particular elements using a mask in python? 【发布时间】:2022-01-18 15:31:15 【问题描述】:

我遇到了一个简单的问题,我想根据表示数组中元素位置的掩码来分配值。例如array[*,1] = 0,但这段代码显然行不通。

经过一番思考,我想出了这个:

import numpy as np

a = np.random.normal(size=(5, 2))

print(a)
print(a.shape)

for i in np.arange(a.shape[0]):
    a[i][1] = 0
    
print(a)
print(a.shape)

但显然,这个尴尬的循环并不是一种 Python 的方式。

那么,您能否分享一些在 Python 中执行此类操作的巧妙方法?

【问题讨论】:

如果您希望第一列的所有条目都为零,只需使用a[:, 1] = 0 对数组进行切片 如果要使用条件语句查看np.where,可以根据a[np.where(condition)] = 0对数组进行索引 @Jonathan Weine 谢谢!我试图做到这一点,但忘记使用逗号,所以它不起作用。我想这应该是答案。 【参考方案1】:

如果您希望第一列的所有条目都为零,只需使用 a[:, 1] = 0 对数组进行切片。

如果你想使用条件语句查看np.where,它可以用于根据a[np.where(condition)] = 0索引数组

【讨论】:

以上是关于如何在 python 中使用掩码将特定元素归零?的主要内容,如果未能解决你的问题,请参考以下文章

html 使用没有javascript的svg掩码将一个图像掩盖在另一个上面

如何使用 opencv 库将 3D 矩阵的元素归零?

获取具有特定名称掩码的所有 DOM 元素 [重复]

如何将 C unsigned int 中的底部 n 位清零?

如何将矩阵中强元素附近的弱元素归零?

如何使用非零返回码将电子邮件发送到使用 smtplib 的备份地址?