首页 > 解决方案 > 我可以用什么代替在python中使用这个for循环

问题描述

a是一个维度为 n 乘以 m 的矩阵。 b是一个维度为 n 乘以 m 的矩阵。矩阵的每一行都是a一个热表示。考虑 m=5,例如 的第一行a是 [0, 0, 0, 1, 0] 并且 ofb是 [0, 0, 1, 0, 0]。

我想逐行比较aand ,然后报告准确性。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)

我有非常大的矩阵,因此需要时间。我想知道是否有更快的方法来做到这一点。先感谢您。

标签: pythonmatrixvector

解决方案


如果您关心矩阵运算的性能,也许可以使用numpy 。

您可以在代码中numpy.where()用作替代方法。.index()


推荐阅读