我正在使用以这种方式定义的结构化数组:
scores = np.empty((num_of_imgs, 4),
dtype=[('id', 'u4'), ('bestT', 'u8'), ('bestR', 'f8'), ('bestP', 'f8')])
然后在for循环中填充它:
scores[i] = [id, bestT, bestR, bestP]
其中列表中的所有变量都是具有形状(1,)的numpy数组。 但是,这行代码会引发上述错误。为什么呢?
答案 0 :(得分:4)
我认为你的scores
任务正在制作一个4元组的nx4数组,这是一个比你想要的更大的维度。它应该是
scores = np.empty(num_of_imgs,
dtype=[('id', 'u4'), ('bestT', 'u8'), ('bestR', 'f8'), ('bestP', 'f8')])
然后你试图将一个列表分配给一个元组,它会抛出你的c连续错误(numpy对于转换结构化数组的类型和ndarrays没有帮助)。使作业成为元组。 (使用()
代替[]
)
scores[i] = (id, bestT, bestR, bestP)