python - 用一个 numpy 数组中的所有零替换
问题描述
我有一个 numpy 数组:
a = np.array([[-1,1,-1],[-1,1,1]])
我的数组只包含两个不同的值:-1 和 1。但是,我想将所有 1 替换为 0,将所有 -1 替换为 1。当然我可以遍历我的数组,检查每个字段的值并替换它。这肯定会起作用,但我一直在寻找一种更方便的方法来做到这一点。
我正在寻找某种
replace(old, new)
功能。
解决方案
你可以试试这个:
import numpy as np
a = np.array([[-1,1,-1],[-1,1,1]])
# approach 1
a[a == 1] = 0
a[a == -1] = 1
# approach 2
mask = a == 1
a[mask] = 0
a[~mask] = 1
print(a)
输出:
[[1 0 1]
[1 0 0]]
推荐阅读
- java - Java:无法在尝试之外返回变量?
- prolog - 如何在序言中创建一个包含从 1 到 N 的元素的列表
- java - 使用自定义异常将函数转换为可完成的
- javascript - 如何将按钮克隆父 div 到正文
- javascript - 为什么从我的笔记本电脑上的节点服务器发送多个 http 请求会扭曲互联网访问
- reactjs - 如何在 Flatlish 中随机选择项目?
- java - 在Java中为什么数字操作的结果与变量操作不同
- firebase - 写入 Firebase Firestore 被拒绝 - Flutter
- c# - 在 C# 中使用 Process.Start
- powershell - Powershell不显示RSS提要