我是编程的新手,有一个问题。如果我有两个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]
因为即使第一个元素不匹配的最后两行,最后两个元素做。
这是我的代码到目前为止,但它甚至不接近工作。任何人都可以给我一些提示吗?
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)
你的问题是非常不清楚的,你的意思是你想比较A中的每一行和B中的每一行,并且当两行中最后两个元素相同时返回两者?此外,您的代码无法识别,请尝试正确格式化,以便我们至少可以读取它。 – jadsq
所以要清楚,你想要两个数组的行附加到新的数组?在你的例子中是长度相等还是长度不同的数组? – BenT
是的,我想要追加两行。阵列长度不一样,这是我一直在努力...帮助将不胜感激。 –