2016-10-08 16 views
1

所有值获得面膜我有numpy的阵列,如:如何从numpy的阵列根据在第三轴

A = np.zeros((X,Y,Z)) 

后来我充满值的数组,我需要找到的x,y根据价值坐标z轴上的数组将其替换为不同的数组。

例与Z=2我有阵

A = [ [ [1,2], [2,1], [0, 0] ], 
     [ [1,1], [1,1], [0, 0] ], ] 

我需要这样的东西

A[ where A[x,y,:] == [1,2] ] = [2,1] 

什么会产生阵列

A = [ [ [2,1], [2,1], [0, 0] ], 
     [ [1,1], [1,1], [0, 0] ], ] 

是否有可能实现,不知怎的,简单吗?我想避免迭代x,y坐标。

+1

您可以加入一个样本案例和预期的输出? – Divakar

+0

@Divakar完成。如果还不够,请告诉我。 – matousc

回答

3

一个量化的方法 -

A[(A == [1,2]).all(-1)] = [2,1] 

采样运行 -

In [15]: A 
Out[15]: 
array([[[1, 2], 
     [2, 1], 
     [0, 0]], 

     [[1, 1], 
     [1, 2], 
     [0, 0]]]) 

In [16]: A[(A == [1,2]).all(-1)] = [2,1] 

In [17]: A 
Out[17]: 
array([[[2, 1], 
     [2, 1], 
     [0, 0]], 

     [[1, 1], 
     [2, 1], 
     [0, 0]]]) 
+0

干得好,谢谢。 – matousc