我有两个数组,我想逐行比较(这是观察结果)并获得匹配的行总数。
这是我的数据:
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.]])
我有这个基本的 for 循环
arr = []
for i in range(0, 5):
arr.append((Array1[i,] == Array2[i,]).all())
arr
Out[210]: [True, True, True, True, True]
有更好的方法吗?
请您参考如下方法:
np.all有一个轴参数。您可以传递 axis=1,以便沿行进行比较。
(arr1 == arr2).all(axis=1)
Out[24]: array([ True, True, True, True, True], dtype=bool)
