我用numpy实现矩阵分解算法,发现我的代码运行了很长时间并导致jupyter内核重启。我将错误本地化为使用np.dot的1行代码。行代码缓慢运行的代码片段如下:
H = np.random.rand(n_features, 8)
print(H_start.T.shape) #(8, 10285)
print(t2t_matrix.shape) #(10285, 10285)
S_nom = H_start.T.dot(t2t_matrix) # this line takes a long time
有什么想法吗?我不会想到(10285,10285)矩阵需要这么长时间吗?
答案 0 :(得分:0)
事实证明t2t_matrix是'scipy.sparse.csc.csc_matrix'并且 H_start是一个'numpy.ndarray'。我不得不使用t2t_matrix.toarray()转换t2t_matrix。没有转换,jupyter笔记本就会崩溃。