如果我有一个布尔数组(a),并想将它与布尔数组列表(B)进行比较:
A = array([ True, True, False, False, False, False, True])
B = [array([ True, True, True, False, False, False, True]),
array([ True, True, False, False, False, False, True]),
array([False, True, False, False, False, False, False])]
我想返回两个数组匹配的索引(整个数组比较而不是元素比较)例如,我如何获得输出= [False, True, False]或[0,1,0]也可以接受?
您需要首先检查这两个数组,然后使用.all(axis=1)
检查每一行,如下所示:
>>> from numpy import array
>>> A = array([ True, True, False, False, False, False, True])
>>> B = [array([ True, True, True, False, False, False, True]),
... array([ True, True, False, False, False, False, True]),
... array([False, True, False, False, False, False, False])]
>>> A == B
array([[ True, True, False, True, True, True, True],
[ True, True, True, True, True, True, True],
[False, True, True, True, True, True, False]])
>>> (A == B).all(1)
array([False, True, False])
from numpy import array
import numpy as np
A = array([ True, True, False, False, False, False, True])
B = [array([ True, True, True, False, False, False, True]),
array([ True, True, False, False, False, False, True]),
array([False, True, False, False, False, False, False])]
res = []
for x in B:
res.append(np.array_equal(A, x))
print(res)