我试图使用numpy模块向量化我的代码,原始代码如下:
m = [M[i,:9].dot(N[:9,i]) for i in xrange(9)]
Run Code Online (Sandbox Code Playgroud)
我改进了代码:
m = np.diagonal(M[:9,:9].dot(N[:9,:9]))
Run Code Online (Sandbox Code Playgroud)
然而,这将导致一些不必要的计算(特别是当指数远大于9时).我该怎么做才能进一步提高效率?
编辑:基本上我打算做的是计算两个矩阵M和N的点积的对角元素.
python performance numpy vectorization matrix-multiplication