python - ValueError:使用序列设置数组元素
问题描述
当我尝试运行这段代码时,我遇到了以下异常。我已经尝试了很多东西。我知道我正在尝试将一个序列分配给 numpy 数组单值。
grid = np.zeros((401, 401))
for timestamps,poly in sorted(left_camera.iteritems()):
polygonal = left_camera[timestamps]
for i in range(0,len(polygonal)):
if len(polygonal)>0:
row = np.int32(polygonal[i][0] * -10 + 200)
coloumn = np.int32(polygonal[i][1] * -10 + 200)
grid[row,coloumn] = np.array([255,0,0])
cv2.imshow("image_name", grid)
cv2.waitKey(0)
我到这里的例外:
grid[row,coloumn] = np.array([255,0,0])
ValueError:使用序列设置数组元素。
这里 left_camera 是我的带有时间戳的字典值,一些多边形是一个列表。
任何解决方案将不胜感激。我是新来的 。
提前致谢!!
解决方案
不适合矩阵的错误点,np.array([255,0,0])
因为它不是要插入 shape 矩阵的预期值(401, 401)
。当您创建 时matrix = np.zeros((401, 401))
,它会创建一个高度 = 401 和宽度 = 401 的矩阵。由于它没有第三维,因此您只能将此矩阵中的单个整数替换为:
grid = np.zeros((401, 401))
grid[10, 10] = 20 # Works perfectly fine
grid[10, 10] = np.array([10, 20, 20]) # Raises Error
要解决此问题,您需要在创建矩阵时传递第三维:
grid = np.zeros((401, 401, 3))
grid[10, 10] = np.array([10, 20, 20]) # Works perfectly fine
推荐阅读
- redis - 使用redis作为我的核心BD时我的业务逻辑放在哪里
- arrays - 如何从开关中获取多个值
- html - “文本下划线偏移”在“显示:块”中不起作用
- swift - 'NSButton' 类型的值没有成员 'Clicked' | 带有按钮的 Xcode 错误
- reactjs - React/Redux - 向一个组件添加排序或过滤功能
- r - R按类别将列表拆分为子列表
- go - $GOPATH[i] 和 $GOPATH[d] 是什么?
- geometry - 如何创建一个半径等于 1/\sqrt{5} 的圆?
- python - Pyppeteer:单击带有 href“javascript:void(0);”的链接时出错
- r - Rstudio pdflatex.exe 没有成功