
for循环读取数组遇问题:dexError: invalid index to scalar variable.
发布日期:2021-05-06 16:32:47
浏览次数:7
分类:技术文章
本文共 975 字,大约阅读时间需要 3 分钟。
用for循环从文档中读取数组时,遇到一个bug,只能循环完成第一个循环,第二个循环就报错:dexError: invalid index to scalar variable.
其实是变量设置的问题,代码如下:
...with open(save_path, 'rb') as fi1: result = pickle.load(fi1, encoding='iso-8859-1') name, fx = zip(*result) for i in range(0, 10): fx = np.array(fx)[i] f_top_id = fx.argsort()[::-1][0:10] # 排序,得到由高到低的序号 print('i & fx:',i, fx[f_top_id[i]])...
上面这段代码就是想从文档中的矩阵中一行接一行的提取数组,在for循环中读取第一行没问题,读出第二行就报错,其实原因很简单,低级错误,弄了几个小时debug,太不注意了,之前也遇到过。
问题出在fx
这里,从name, fx = zip(*result)
得到后,放入循环中又继续用这个变量名fx = np.array(fx)[i]
,这就炸锅了,第二次循环就肯定报错,因为fx
在第一个循环的参数又直接导入到第二个循环中的fx
,这就是问题所在,实际上需要fx
的数据保持不变。 解决方法:在for循环中的fx
改成其他变量名就解决了,如f_x
就可以了,改完如下: ...with open(save_path, 'rb') as fi1: result = pickle.load(fi1, encoding='iso-8859-1') name, fx = zip(*result) for i in range(0, 10): f_x = np.array(fx)[i] f_top_id = f_x.argsort()[::-1][0:10] # 排序,得到由高到低的序号 print('i & fx:',i, f_x[f_top_id[i]])...
记录debug的问题,加深记忆,也希望能给其他遇到同样报错的人一些启发,也感谢其他人的分享。
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年03月22日 07时57分14秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java手动实现JWT(我和别人的不一样)
2019-03-03
LetCode刷题记录--No3-无重复字符的最长子串
2019-03-03
Java转换xml格式时间 (yyyy-MM-ddTHH:mm:ss.SSSZ)
2019-03-03
Python 使用 __getstate__ 和 __setstate__ 魔法方法
2019-03-03
hook钩子介绍
2019-03-03
关于json
2019-03-03
焦点事件
2019-03-03
webpack打包常见报错
2019-03-03
vuex—1vuex初始
2019-03-03
axios服务器通信—1axios介绍和使用mock数据
2019-03-03
web前端面试一从输入url到看到页面发生了什么
2019-03-03
关于IP地址
2019-03-03
IO复用之epoll
2019-03-03
智慧水利的泵站自动化监控系统解决方案
2019-03-03
C getopt.h
2019-03-03
CentOS下Nvidia docker 2.0之安裝教程&踩坑實錄
2019-03-03
H5页面授权获取微信授权(openId,微信nickname等信息)
2019-03-03