python - 在 numpy 数组中将 1 更改为 0 并将 0 更改为 1 而无需循环
问题描述
假设我有一个 numpy 数组,我想将所有 1 交换为 0,将所有 0 交换为 1(该数组将具有其他值,并且 0 和 1 没有什么特别之处)。当然,我可以循环遍历数组并逐个更改它。您可以推荐使用一种有效的方法吗?np.where() 方法是否有此操作的选项?
解决方案
这是一种使用np.where
, 并在XOR
给定值是0
或时按位取值的方法1
:
np.where((a==0)|(a==1), a^1, a)
例如:
a = np.array([[0,1,2,1], [1,2,0,3]])
print(a)
array([[0, 1, 2, 1],
[1, 2, 0, 3]])
np.where((a==0)|(a==1), a^1, a)
array([[1, 0, 2, 0],
[0, 2, 1, 3]])
推荐阅读
- ansible - 使用更新 Ansible 列表中的属性
- angular - 从 Angular 前端向 FastAPI 后端发送 Post 请求时出现 422 错误代码
- regression - xgb 的单调约束:增加一个参数的特征重要性
- javascript - 如何避免在函数调用中重复一长串参数/参数,并将它们全部定义在一个地方?
- docker - 无法从另一个 docker 容器连接到 dockerized Express.js 应用程序
- binary-tree - 如何确定完整二叉树中给定子树中叶子的索引?
- asp.net-core-webapi - 配置 Microsoft Identity Platform 连接的服务失败
- django - Django 创建特定的查询集
- python - 使用布尔掩码将数据框单元格转换为 NaN
- api - 如何在邮递员中同时上传文件和正文参数