我有两个数组,我想逐行比较(这是观察)并获得匹配的总行数。
这是我的数据:
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 :(得分:5)
np.all有一个轴参数。您可以传递axis=1
,以便比较沿着行。
(arr1 == arr2).all(axis=1)
Out[24]: array([ True, True, True, True, True], dtype=bool)