Python 迭代numpy数组以比较不同数组的列

Python 迭代numpy数组以比较不同数组的列,python,arrays,numpy,Python,Arrays,Numpy,我是编程新手,有一个问题。如果我有两个numpy阵列: A = np.array([[1,0,3], [2,6,5], [3,4,1],[4,3,2],[5,7,9]], dtype=np.int64) B = np.array([[3,4,5],[6,7,9],[1,0,3],[4,5,6]], dtype=np.int64) 我想比较数组A的最后两列和数组B的最后两列,如果它们相等,则将整行输出到一个新数组。因此,这两个阵列的输出为: [1,0,3 1,0,3 5,7,9 6,7,9]

我是编程新手,有一个问题。如果我有两个numpy阵列:

A = np.array([[1,0,3], [2,6,5], [3,4,1],[4,3,2],[5,7,9]], dtype=np.int64)  
B = np.array([[3,4,5],[6,7,9],[1,0,3],[4,5,6]], dtype=np.int64)
我想比较数组A的最后两列和数组B的最后两列,如果它们相等,则将整行输出到一个新数组。因此,这两个阵列的输出为:

[1,0,3
1,0,3
5,7,9
6,7,9]
因为即使第一个元素与最后两行不匹配,最后两个元素也会匹配

这是我到目前为止的代码,但它甚至还没有工作。有人能给我一些提示吗

column_two_A = A[:,1]
column_two_B = B[:,1]

column_three_A = A[:,2]
column_three_B = B[:,2]

column_four_A = A[:,3]
column_four_B = B[:,3]

times = A[:,0]

for elementA in column_three_A: 
    for elementB in column_three_B: 
        if elementA == elementB: 
            continue 
        for elementC in column_two_A: 
            for elementD in column_two_B: 
                if elementC == elementD: 
                    continue
                for elementE in column_four_A: 
                    for elementF in column_four_B: 
                        if elementE == elementF:
                            continue 
                        element.append(time)
 print(element)

我想我通过熬夜找到了答案。。。谢谢大家!

 `for i in range(len(A)):
     for j in range(len(B)):
         if A[i][1] == B[j][1]:
           if A[i][2] == B[j][2]:
               print(B[j])
               print(A[i])`

Numpy拥有许多用于此类任务的功能。下面是一个检查a的值是否在B中的解决方案。添加
print()
语句并检查
chk
chk2
x
是什么

import numpy as np
A = np.array([[1,0,3], [2,6,5], [3,4,1],[4,3,2],[5,7,9]], dtype=np.int64)
B = np.array([[3,4,5],[6,7,9],[1,0,3],[4,5,6]], dtype=np.int64)

c = []

for k in A:

    chk = np.equal(k[-2:], B[:, -2:])
    chk2 = np.all(chk, axis=1)
    x = (B[chk2, :])
    if x.size:
        c.append(x)

print(c)

您的问题非常不清楚您的意思是要将A中的每一行与B中的每一行进行比较,并在两行的最后两个元素相同时返回这两行吗?另外,您的代码无法理解。请尝试将其正确格式化,以便我们至少可以读取它。因此,为了清楚起见,您希望将两个数组的行附加到新数组中吗?长度相等还是长度可变的数组与示例中的相同?是的,我希望两行都追加。阵列的长度不相等,这是我一直在努力解决的问题…非常感谢您的帮助。另外,给定的阵列总是nx3。所以总是会有三列,我只是不知道肯定会有多少行。