如果我有一个numpy数组:
x1 = np.arange(9.0).reshape((3, 3))
我想选择所有具有N值的元素并用值M替换它们如何以一种聪明的方式去做它?
我知道我可以使用此功能使其返回满足条件的1
(x1 == 4).astype(int)
返回:
array([[0, 0, 0],
[0, 1, 0],
[0, 0, 0]])
我希望能够自己选择这个号码。
答案 0 :(得分:2)
您可以使用以下代码轻松使用N
进行索引。
此代码根据每个元素是否等于True
创建False
或x==N
值N
的掩码。如果该值等于N
则为True,反之亦然。然后使用此掩码进行索引,并使用True
分配M
的任何内容。
x = np.arange(9).reshape((3,3))
N = 4
M = 100
x[x==N] = M
print(x)
# array([[ 0, 1, 2],
# [ 3, 100, 5],
# [ 6, 7, 8]])