2017-07-26 41 views
1

現在我們有兩個數組在蟒蛇,在元素比較兩個數組,並更改下限值到零

a = [[1.,2.,3.,4.,5.,6.,7.,8.,9.],[9.,8.,7.,6.,5.,4.,3.,2.,1.]] 

b = [[2.,2.,1.,2.,0.,2.,1.,2.,0.],[2.,2.,1.,2.,0.,2.,1.,2.,0.]] 

有沒有什麼快速的方式來實現以下功能: 由元素這兩個數組進行比較,更改以下規則數組a []:

if a[i,j] > b[i,j]: 

    a[i,j] = a[i,j] 

else 

a[i,j] = 0 

我知道,一個循環可以做到這一點,但我想知道是否有任何其他更快的方式做到這一點。

回答

3
import numpy as np 
a = np.array([[1.,2.,3.,4.,5.,6.,7.,8.,9.],[9.,8.,7.,6.,5.,4.,3.,2.,1.]]) 
b = np.array([[2.,2.,1.,2.,0.,2.,1.,2.,0.],[2.,2.,1.,2.,0.,2.,1.,2.,0.]]) 

gr = np.greater(a,b) 
a = np.multiply(a,gr) 

在GR和一個陣列成爲:

[[False False True True True True True True True] 
[ True True True True True True True False True]] 

array([[ 0., 0., 3., 4., 5., 6., 7., 8., 9.], 
     [ 9., 8., 7., 6., 5., 4., 3., 0., 1.]])