【发布时间】:2020-03-09 16:08:13
【问题描述】:
我有两个不同大小的二维数组。
第一个数组有 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 中的任何行匹配。
理想情况下,布尔数组可以如下表示:[True, False, True]
基本上表示array_1中的第0行匹配array_2中的一行,array_1中的第1行不匹配array_2中的一行,等等......
【问题讨论】:
-
我完全不明白您的预期/预期输出是什么。你最后一句的解释很难理解。
-
10 或 3,请选择一个。您的问题充其量是不一致的
-
另外,这些也不是二进制数组。他们非常浪费地使用 float 而不是 bool dtype。
-
抱歉,我编辑了这个问题,希望现在更清楚了。谢谢。
-
[(array_3 == array_1[i]).all(1).any() for i in range(len(array_1))]