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

文章讲述了在SORT源码中遇到的TypeError,涉及切片操作符在处理多维边界框数组时的使用。解决方法是将list转换为numpy数组,并理解...操作在处理多维输入时的作用,确保按正确维度提取坐标值。
摘要由CSDN通过智能技术生成

内容简介

  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坐标。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值