我有两个不同大小的二维数组。
第一个数组有 3 行 7 列 第二个数组有 60 行 7 列
array_1 =
[[0., 0., 0., 0., 1., 1., 1.],
[1., 0., 1., 0., 0., 1., 0.],
[1., 1., 1., 0., 1., 0., 0.]]
array_3 =
[[0., 0., 0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0., 1., 1.],
[0., 0., 0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0., 0., 0.],
[0., 0., 0., 1., 0., 1., 1.],
[0., 0., 0., 1., 1., 0., 0.],
[0., 0., 0., 1., 1., 1., 1.],
[0., 0., 1., 0., 0., 0., 0.],
[0., 0., 1., 0., 0., 1., 1.],
[0., 0., 1., 0., 1., 0., 0.],
[0., 0., 1., 0., 1., 1., 1.],
[0., 0., 1., 1., 0., 0., 0.],
[0., 0., 1., 1., 0., 1., 1.],
[0., 0., 1., 1., 1., 0., 0.],
[0., 0., 1., 1., 1., 1., 1.],
[0., 1., 0., 0., 0., 0., 0.],
[0., 1., 0., 0., 0., 1., 0.],
[0., 1., 0., 0., 1., 0., 1.],
[0., 1., 0., 0., 1., 1., 1.],
[0., 1., 0., 1., 0., 0., 0.],
[0., 1., 0., 1., 0., 1., 0.],
[0., 1., 0., 1., 1., 0., 1.],
[0., 1., 0., 1., 1., 1., 1.],
[0., 1., 1., 0., 0., 0., 0.],
[0., 1., 1., 0., 0., 1., 0.],
[0., 1., 1., 0., 1., 0., 1.],
[0., 1., 1., 0., 1., 1., 1.],
[0., 1., 1., 1., 0., 1., 0.],
[0., 1., 1., 1., 1., 0., 1.],
[0., 1., 1., 1., 1., 1., 1.],
[1., 0., 0., 0., 0., 0., 0.],
[1., 0., 0., 0., 0., 1., 0.],
[1., 0., 0., 0., 1., 1., 0.],
[1., 0., 0., 1., 0., 0., 1.],
[1., 0., 0., 1., 0., 1., 1.],
[1., 0., 0., 1., 1., 0., 1.],
[1., 0., 0., 1., 1., 1., 1.],
[1., 0., 1., 0., 0., 0., 0.],
[1., 0., 1., 0., 0., 1., 0.],
[1., 0., 1., 0., 1., 0., 0.],
[1., 0., 1., 0., 1., 1., 0.],
[1., 0., 1., 1., 0., 0., 1.],
[1., 0., 1., 1., 0., 1., 1.],
[1., 0., 1., 1., 1., 0., 1.],
[1., 0., 1., 1., 1., 1., 1.],
[1., 1., 0., 0., 0., 0., 0.],
[1., 1., 0., 0., 0., 1., 0.],
[1., 1., 0., 0., 1., 0., 0.],
[1., 1., 0., 0., 1., 1., 0.],
[1., 1., 0., 1., 0., 1., 0.],
[1., 1., 0., 1., 1., 0., 0.],
[1., 1., 0., 1., 1., 1., 0.],
[1., 1., 1., 0., 0., 0., 1.],
[1., 1., 1., 0., 0., 1., 1.],
[1., 1., 1., 0., 1., 0., 1.],
[1., 1., 1., 0., 1., 1., 1.],
[1., 1., 1., 1., 0., 0., 1.],
[1., 1., 1., 1., 0., 1., 1.],
[1., 1., 1., 1., 1., 0., 1.],
[1., 1., 1., 1., 1., 1., 1.]]
目前我有一个这样的功能:
def compare(arr_1, arr_2):
return arr_1 == arr_2.all(axis=1)
只返回False
值。
我希望该函数执行的操作是比较 array_1
中的行与 array_2
中的行,本质上是查看 array_1
中是否有任何行匹配 array_2
中的任何行.
理想情况下, bool 数组可以表示如下:[True, False, True]
基本上代表 array_1
中的第 0 行匹配 array_2
中的一行,array_1
中的第 1 行与 array_2
中的行不匹配等等...
最佳答案
可以使用下面的函数来解决这个问题。 它将迭代第一个数组,并检查第二个数组中是否存在该行,最后将答案存储在结果变量中。
def compare_arrays(arr_1, arr_2):
result = []
for row in arr_1:
result.append(row in arr_2)
return result
关于python - 比较不同大小的二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58844252/