我有一个带有“n”个唯一值的二维 numpy 数组。 我想生成一个二进制矩阵,其中所有值都替换为 “零”,我指定的值被分配为“一”。
例如,我有一个数组如下,我想要所有的实例 35 个被分配为“一个”:
array([[12, 35, 12, 26],
[35, 35, 12, 26]])
我正在尝试获得以下输出:
array([[0, 1, 0, 0],
[1, 1, 0, 0]])
在 Python 中最有效的方法是什么?
最佳答案
import numpy as np
x = np.array([[12, 35, 12, 26], [35, 35, 12, 26]])
(x == 35).astype(int)
会给你:
array([[0, 1, 0, 0],
[1, 1, 0, 0]])
numpy 中的 == 运算符执行逐元素比较,将 bool 值转换为整数时,True 编码为 1,False 编码为 0。
关于python - 除一个特定值外,如何将 numpy 数组中的所有值替换为零?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48308240/