Python 查找numpy图像的重叠
如果我有两个numpy阵列:Python 查找numpy图像的重叠,python,numpy,Python,Numpy,如果我有两个numpy阵列: a = np.array[[0,1,1], [0,1,0], [0,0,0]] b = np.array[[0,1,1], [0,0,1], [0,0,0]] 我如何找到它们之间的“重叠”,因此输出为: c = [[0,1,1], [0,0,0], [0,0,0]] 我有这个,但有没有一
a = np.array[[0,1,1],
[0,1,0],
[0,0,0]]
b = np.array[[0,1,1],
[0,0,1],
[0,0,0]]
我如何找到它们之间的“重叠”,因此输出为:
c = [[0,1,1],
[0,0,0],
[0,0,0]]
我有这个,但有没有一种方法可以更快,因为我的阵列很大
c = a + b - 1
c[c<0] = 0
c=a+b-1
c[c如您的示例所示,如果数组中的值为0或1,则可以使用按位“和”运算符&
:
In [3]: a
Out[3]:
array([[0, 1, 1],
[0, 1, 0],
[0, 0, 0]])
In [4]: b
Out[4]:
array([[0, 1, 1],
[0, 0, 1],
[0, 0, 0]])
In [5]: c = a & b
In [6]: c
Out[6]:
array([[0, 1, 1],
[0, 0, 0],
[0, 0, 0]])
希望答案能对汉克斯有所帮助。事实证明,c=a==b实际上要快一点!@kezzos,这是相同的结果吗?如果值匹配,c=a==b将返回true,而c=a&b将在两者都为1的地方给出1。