2024-05-19 13:08:57 发布
网友
我有两个由函数numpy.where返回的numpy数组,如下所示:
numpy.where
A = numpy.where(img == 255) B = numpy.where(img2 != 0)
我需要在A和B中找到唯一坐标的数量。我最初考虑使用numpy.intersect1d来获得公共索引的数量,并从两个数组的元素总数中减去这个数量。但是这些数组不是一维的,所以我不知道该怎么做
A
B
numpy.intersect1d
有什么建议我可以做到这一点吗
谢谢
Numpy将xor运算符(^)解释为逻辑xor,遵循:
^
X|Y|X^Y 0|0| 0 0|1| 1 1|0| 1 1|1| 0
所以可以对布尔数组进行异或运算:
(img == 255) ^ (img2 != 0)
举个例子:
>>> img == 255 array([[False, True, False], [ True, False, False], [False, False, False]]) >>> img != 0 array([[ True, True, True], [ True, True, True], [ True, True, True]]) >>> (img == 255) ^ (img2 != 0) array([[False, False, True], [ True, True, True], [False, False, True]]) >>> ((img == 255) ^ (img2 != 0)).sum() 5
所以在img或img2中有5True个不在同一索引处的数组
img
img2
5
True
更新:
如果你想要在img或img2中的True的数目(即两组True坐标的并集相同)。然后使用逻辑或:|
|
Numpy将xor运算符(
^
)解释为逻辑xor,遵循:所以可以对布尔数组进行异或运算:
举个例子:
所以在
img
或img2
中有5
True
个不在同一索引处的数组更新:
如果你想要在
img
或img2
中的True
的数目(即两组True
坐标的并集相同)。然后使用逻辑或:|
相关问题 更多 >
编程相关推荐