我需要了解以下 python 代码片段中运算符的用法。我不熟悉 np.zeros() 语句中 * 的用法。它看起来像 c 中的指针取消引用运算符,但我猜不是。
还有,赋值语句中==的用法是什么?这看起来像是一个相等性测试,但 True 和 False 不是 numpy 数组的有效索引。
new_segs = np.zeros((*raw_segs.shape, 3), dtype=np.uint8)
i = 0
for val in [x['handle'] for x in detections]:
colors = [(255,0,255), (55,0,55), (34,33,87)]
new_segs[raw_segs == val] = colors[i % len(colors)]
抱歉这个蹩脚的问题。曾尝试寻找答案,但我在搜索运算符使用情况时得到的答案并不令人满意。
请您参考如下方法:
解释了星号* 的解包。 numpy 中的 == 是一个 boolean mask .您传递的数组应该与另一个 numpy 数组的大小相同,但这会告诉它要包含或不包含数组的哪些元素。
