将Python函数转换为Cython

时间:2016-10-20 14:17:30

标签: python numpy cython

我有一个基本上如下工作的python函数:

def calculateH():
    N = 1000
    n = 12
    k = 3

    pu = np.random.random((k,n))
    X = np.random.random((N,n))

    H = np.zeros([k,k,n])
    wH = np.zeros([k,k])
    for x1 in range(n):
        wH = wH*0
        for i in range(N):
            for k1 in range(k):
                for k2 in range(k):
                    for bl in range(n):
                        for bli in range(n):
                            wH[k1,k2]+=pu[k2,bl]*pu[k1,bli]*X[i,bli]*X[i,bl]*X[i,x1]/N
        H[:, :, x1] = wH

    return H

很明显,这种实现非常缓慢(比如说,不可用)。我还有一个使用numpy的更快的实现,这需要几分钟才能运行。

我想看看使用Cython是否可以进一步加快这个实现,但我不知道如何启动以及使用Cython的真正含义。

在Cython中有直接转换此功能的方法吗? 之后,如何从外部纯Python模块调用此函数?

0 个答案:

没有答案