如果我有一個布爾陣列 (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] 也可以接受?
uj5u.com熱心網友回復:
您需要先檢查這兩個陣列,然后.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])
uj5u.com熱心網友回復:
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/325911.html
