python - 我可以用什么代替在python中使用这个for循环
问题描述
a
是一个维度为 n 乘以 m 的矩阵。
b
是一个维度为 n 乘以 m 的矩阵。矩阵的每一行都是a
一个热表示。考虑 m=5,例如 的第一行a
是 [0, 0, 0, 1, 0] 并且 ofb
是 [0, 0, 1, 0, 0]。
我想逐行比较a
and ,然后报告准确性。b
为了报告准确性,我遵循以下代码并且它有效:
for i in range(len(a)):
a_element = list(a[i]).index(1.)
b_element = list(b[i]).index(1.)
if a_element == a_element:
true += 1
else:
false += 1
result = 100. * true / (true + false)
我有非常大的矩阵,因此需要时间。我想知道是否有更快的方法来做到这一点。先感谢您。
解决方案
如果您关心矩阵运算的性能,也许可以使用numpy 。
您可以在代码中numpy.where()
用作替代方法。.index()
推荐阅读
- asp.net-mvc - 我们如何在 asp.net 身份 MVC 项目中添加外键
- angular - 带有 ngx 传单的 Google 地图样式
- php - Google People API - PHP 缺失类
- firebase - 尝试部署 Firebase 函数时出现 TypeScript 错误
- c++ - 如何在多个文件中实现枚举?
- python - Python - 获取邮件的日期时间 - Gmail
- reactjs - flexDirection:“行”在 FlatList 中不起作用
- php - 将查询结果发送到打印机
- angular - 登录提交用 url 中的电子邮件和密码刷新页面,使用按钮单击不在 onLogin() 方法中发布电子邮件和密码
- linux - Linux,如何反汇编系统调用