python - 比较不同大小的二维数组

标签 python arrays numpy

我有两个不同大小的二维数组。

第一个数组有 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/

相关文章:

python - 如何让 zc.sourcerelease 使用本地的 eggs 缓存?

python多处理自喂消费者永远锁

python - MySQL从Python插入/更新,来自Excel电子表格的数据

python - 函数参数验证 : what is the pythonic way?

javascript - 数组/字符串的lastIndexOf结果不一致

python - Python中使用fft2的"valid"和"full"卷积

java - Java中的每个循环的原始数组如何与new一起使用?

java - 如何打乱字符串数组

python - 如果在 Python 3.7 中运行多次,函数将不再工作

python - 如何为python安装scipy?