Python 中的多个数组异或

Xor multiple arrays in Python

我想将多个数组组合成一个矩阵来实现全0数组

(0,0,0,0,0)

例如:

我有这个矩阵,其中 array[0] 是每个数组的索引:

[0,(0,1,0,1,0)]
[1,(0,1,0,0,0)]
[2,(0,0,1,1,0)]
[3,(0,0,1,0,0)]
[4,(0,0,1,0,0)]

如果我对数组 3 和 4 进行异或,我得到一个全零数组,或者我可以对数组 0、1​​、2 和 4 进行异或。

我不知道 python 中是否存在任何库来计算这些东西或类似的东西。我找了好几天了。

知道怎么做吗?

我已经尝试过 numpy 库并尝试使用 xor 方法

for i in range(len(MODS)):
        num = []
        for j in range(len(MODS[i][1])):
            if i+1 < len(MODS):
                if xor(MODS[i][1][j],MODS[i+1][1][j]) == 0:
                    num.append(0)
                    continue
                else:
                    break
            else:
                break

问题是这种方法只比较成对的数组。

我正在寻找可以解决问题的任何数组组合。

这将查找具有 xor 值的所有行组合,结果为零 (False)。

要查找所有行组合,请使用 itertools.combinations

import numpy as np
from itertools import combinations

A = np.array([[0,1,0,1,0],
              [0,1,0,0,0],
              [0,0,1,1,0],
              [0,0,1,0,0],
              [0,0,1,0,0]])

print('All combinations of rows with xor resulting in zero: ')

for i in range(1, len(A)+1):
    for x in combinations(A, i):
        if not np.logical_xor.reduce(x).any():
            print(x)

# All combinations of rows with xor resulting in zero:
# (array([0, 0, 1, 0, 0]), array([0, 0, 1, 0, 0]))             
# (array([0, 1, 0, 1, 0]), array([0, 1, 0, 0, 0]), array([0, 0, 1, 1, 0]), array([0, 0, 1, 0, 0]))                        
# (array([0, 1, 0, 1, 0]), array([0, 1, 0, 0, 0]), array([0, 0, 1, 1, 0]), array([0, 0, 1, 0, 0]))