Python列表切片报错记录&切片操作符...的作用

发布时间:2024年01月21日

内容简介

  1. 报错记录:TypeError: list indices must be integers or slices, not tuple
  2. 切片操作符作用

背景

在初步阅读并测试SORT源码中iou_match()函数时,遇到了...切片操作符,欲对其进行进行调试。

Talk is cheap, show me the code.

data = [
    [
        [1,2,3],
        [4,5,6],
        [7,8,9]
    ],
    [
        [1,2,3],
        [4,5,6],
        [7,8,9]
    ],
    [
        [1,2,3],
        [4,5,6],
        [7,8,9]
    ]
]
# data = np.array(data) #解决方法
print(data[...,0])

直接上解决方法:list转为numpy数组,方法来源

另外说明...的作用:用于表示多维数组的多个冒号。

在iou_match()的代码中,检测框bb_test和跟踪框bb_gt可能是多维数组,例如,如果它们是形状为(N, M, P)的数组,其中N是批量大小,M是边界框的数量,而P是每个边界框的维度(源码中是4,表示x1, y1, x2, y2坐标)。
(注:这里NMP的举例和SORT源码并不相符,不要被误导)

这里的...操作是为了确保函数能够处理多维输入数组,并正确地沿正确的维度进行操作。具体来说,bb_test[…, 0]和bb_gt[…, 0]分别取出了每个边界框的x坐标,而不仅仅是第一个边界框的x坐标。

文章来源:https://blog.csdn.net/qq_43543940/article/details/135730758
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。