Skip to main content
 首页 » 编程设计

Python之按行比较两个二维数组

2025年05月04日28wuhuacong

我有两个数组,我想逐行比较(这是观察结果)并获得匹配的行总数。

这是我的数据:

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)