Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 索引错误:标量变量的索引无效_Python 3.x_List_Point Clouds - Fatal编程技术网

Python 3.x 索引错误:标量变量的索引无效

Python 3.x 索引错误:标量变量的索引无效,python-3.x,list,point-clouds,Python 3.x,List,Point Clouds,我试图使用dataset中检测注释中提到的尺寸创建边界框(我使用polyterrasse注释),出于某种原因,以下代码工作了25帧,但突然出现错误: indexer错误:标量变量的索引无效。我下载了数据,解包,检查了它,结果发现文件polyterrasse026.ezd.bbox只有一行数据: 1.718750 5.066964 -0.327395 0.693458 0.684387 1.325830 0 0 0 0 这就是为什么bbox\u路径[26]是1D数组。这就是你出错的原因 编辑

我试图使用dataset中检测注释中提到的尺寸创建边界框(我使用polyterrasse注释),出于某种原因,以下代码工作了25帧,但突然出现错误:


indexer错误:标量变量的索引无效。
我下载了数据,解包,检查了它,结果发现文件
polyterrasse026.ezd.bbox
只有一行数据:

1.718750 5.066964 -0.327395 0.693458 0.684387 1.325830 0 0 0 0
这就是为什么
bbox\u路径[26]
是1D数组。这就是你出错的原因

编辑

要验证
bbox
是否为2D数组,您可以使用,例如,
bbox.ndim==2
bbox.size
显示数组中的元素数,而不是维度数

问题的本质是,如果文件只包含一行数据,则
np.loadtxt()
返回1D数组。您可以这样处理此问题:

if bbox.ndim == 1:
    bbox = np.array([bbox])

看起来
cbox\u dim
只有一个维度,因此
cbox\u dim[j]
是一个单值标量。cropbox是3D的,就像一个边界框。让我困惑的是,这个程序工作了25帧,然后它给出了一个错误。我得到了正确的对象切出帧,没有任何问题。我检查了第26帧,它在数据和格式方面看起来完全一样。但是我遇到了一个索引问题。那么您可能应该检查
bbox\u path[25]
,因为在这种情况下
bbox=np.loadtxt(…)
为您提供1D数据。文本文件包含nx10数组作为数据。这些数组中的每一行表示边界框的质心和尺寸。这就是为什么我使用np.load text直接将数据作为numpy数组接收的原因。我在全局路径中做了必要的更改。希望这能让事情变得更简单。是的,每个文件的行数有很大的不同。但这就是我在访问数据之前检查数组长度的原因。因此,无论nx10阵列是什么,程序都会进行迭代,直到n,并相应地访问数据。我这里的逻辑错了吗?@kav你检查条件
bbox.size==0
,这不能保证
bbox
是2D数组。我暗示的检查是
范围内的j(len(cbox\u dim))
,如果我没有弄错的话,它应该可以工作一次迭代?@kav,您得到错误是因为
cbox\u dim
应该是2D数组,但它是1D数组。当它是2D数组时,迭代行(1D数组),当它是1D数组时,迭代值(0D数组)。因此for循环按预期工作,不检查
cbox\u dim
中的维度数。我的答案的编辑部分提供了问题的解决方法。请检查一下,它成功了!谢谢我还有一个问题要问你。当我尝试使用cropbox过滤器清除实例时,我处理了这个数据集的另一个问题,但由于某些原因,我只能在第1帧之后执行此操作。你能告诉我你有没有山姆·艾苏吗?我是否要编辑我的问题并在其中添加下一个问题?我对stackoverflow比较陌生,所以我不确定是应该单独问一个问题还是编辑这个问题。