2014-11-21 88 views
-1

如果我有一個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

您可以使用下面的代碼很容易地使用N索引。

該代碼根據每個元素是否等於N,創建一個掩碼TrueFalsex==N。如果該值等於N則爲真,反之亦然。然後,您使用此掩碼進行索引,並將TrueM分配。

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]]) 
+0

太棒了!謝謝 – NicolaiF 2014-11-21 14:39:28