我目前正在使用python中的稀疏矩阵。我选择对问题使用lil_matrix,因为正如文档lil_matrix中所述,它们旨在用于构造稀疏矩阵。我的稀疏矩阵的尺寸为2500x2500
我在两个循环(在矩阵元素中进行迭代)中有两个代码,它们具有不同的执行时间,我想了解为什么。第一个是
current = lil_matrix_A[i,j]
lil_matrix_A[i, j] = current + 1
lil_matrix_A[j, i] = current + 1
基本上只取矩阵的每个元素并将其值加1。 第二个是如下
value = lil_matrix_A[i, j]
temp = (value * 10000) / (dictionary[listA[i]] * dictionary[listB[j]])
lil_matrix_A[i, j] = temp
lil_matrix_A[j, i] = temp
基本上取值,进行公式计算,然后将此新值插入矩阵。 第一段代码执行大约0.4秒,第二段代码执行大约32秒。 我知道第二个在中间有一个额外的计算,但是我认为时差没有意义。字典和列表索引的复杂度为O(1),因此这不应该成为问题。有什么建议导致执行时间的差异吗?
注意:列表和字典中的元素数也是2500。