相关疑难解决方法(0)

在python中加速逐元素的数组乘法

我一直在玩numba和numexpr试图加速一个简单的元素矩阵乘法.我无法获得更好的结果,它们基本上(速度方向)等同于numpys乘法函数.这个地区有人有运气吗?我使用numba和numexpr是错误的(我对此很新)或者这是一个不好的方法来尝试加快速度.这是一个可重现的代码,谢谢你的高级:

import numpy as np
from numba import autojit
import numexpr as ne

a=np.random.rand(10,5000000)

# numpy
multiplication1 = np.multiply(a,a)

# numba
def multiplix(X,Y):
    M = X.shape[0]
    N = X.shape[1]
    D = np.empty((M, N), dtype=np.float)
    for i in range(M):
        for j in range(N):
            D[i,j] = X[i, j] * Y[i, j]
    return D

mul = autojit(multiplix)
multiplication2 = mul(a,a)

# numexpr
def numexprmult(X,Y):
    M = X.shape[0]
    N = X.shape[1]
    return ne.evaluate("X * Y")

multiplication3 = numexprmult(a,a) 
Run Code Online (Sandbox Code Playgroud)

performance numpy matrix-multiplication python-2.7 numba

13
推荐指数
2
解决办法
5842
查看次数