相等数量使用嵌套列表

2024-04-25 15:14:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在图片中搜索一个矩形。这幅画是从皮尔收集的。这意味着我将得到一个二维数组,其中每个项目是一个列表,其中有三个颜色条目。你知道吗

要获取带有搜索颜色的矩形的位置,我使用np.equal。下面是一个缩小的示例:

>>> l = np.array([[1,1], [2,1], [2,2], [1,0]])
>>> np.equal(l, [2,1])  # where [2,1] is the searched color
array([[False,  True],
   [ True,  True],
   [ True, False],
   [False, False]], dtype=bool)

但我期望:

array([False, True, False, False], dtype=bool)

或者

array([[False,  False],
   [ True,  True],
   [ False, False],
   [False, False]], dtype=bool)

如何实现与numpy的嵌套列表比较?

注意:然后我想用np.wherenp.equal的结果中提取矩形的索引。你知道吗


Tags: 项目falsetrue列表颜色np图片条目
1条回答
网友
1楼 · 发布于 2024-04-25 15:14:54

可以沿第二个轴使用all方法:

>>> result = numpy.array([[1, 1], [2, 1], [2, 2], [1, 0]]) == [2, 1]
>>> result.all(axis=1)
array([False,  True, False, False], dtype=bool)

为了得到指数:

>>> result.all(axis=1).nonzero()
(array([1]),)

我更喜欢nonzero而不是where,因为wheretwo very different things取决于传递给它的参数数量。当我需要它独特的功能时,我使用where;当我需要nonzero的行为时,我显式地使用nonzero。你知道吗

相关问题 更多 >

    热门问题