在NP.array中查找元素并替换它们的简便方法

时间:2014-11-21 14:34:16

标签: python arrays numpy

如果我有一个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]])

我希望能够自己选择这个号码。

1 个答案:

答案 0 :(得分:2)

您可以使用以下代码轻松使用N进行索引。

此代码根据每个元素是否等于True创建Falsex==NN的掩码。如果该值等于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]])