2016-04-18 28 views
1

2つの配列があります。これは、行単位で比較する(観測値です)、一致する行の総数を取得することです。ここでPython - 2つの2D配列を行単位で比較する

は私のデータです:

Array1 
Out[207]: 
array([[ 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], 
     [ 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], 
     [ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.]]) 

Array2 
Out[208]: 
array([[ 0., 0., 0., 0., 0., 0., 1., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 1., 0., 0.], 
     [ 0., 0., 0., 0., 0., 1., 0., 0., 0., 0.], 
     [ 1., 0., 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 1., 0., 0., 0., 0., 0., 0.]]) 

私はループ

arr = [] 
for i in range(0, 5): 
    arr.append((Array1[i,] == Array2[i,]).all()) 

arr 
Out[210]: [True, True, True, True, True] 

ため、これが基本的な必要があり、これを行うには良い方法はありますか?

+0

あなたのために働いている場合は、より良い方法をどういう意味ですか?それは非常に遅いか、そのようなものですか? – Peaceful

+0

@SnehalShekatkarこれを行うより効率的な方法があれば、 Rループから来ているのは "ばかげて"私はばかげているが、Pythonにも同じ問題があるのだろうかと疑問に思っていたのだろうか? – Kevin

答えて

5

np.allには軸パラメータがあります。比較が行に沿って行われるように、axis=1を渡すことができます。

(arr1 == arr2).all(axis=1) 
Out[24]: array([ True, True, True, True, True], dtype=bool)