Cython实际上让我放慢了速度

时间:2016-10-25 07:17:08

标签: python numpy cython

我正在尝试进行cythonize'但是我的代码虽然以下代码确实有效,但它并没有为我的代码添加任何速度(实际上它的速度较慢)。我想知道是否有人知道我做错了什么,如果有的话。注意我传递的是一个numpy数组,它的数据类型应该是float16。从来没有使用过cython,我现在正在使用Jupyter笔记本。在上面的单元格中,我已经加载了Cython。

%%cython
import numpy as np
cimport numpy as np

DTYPE = np.float16
ctypedef np.int_t DTYPE_t

def arrange_waveforms(np.ndarray arr,dim,mintomaxEventslistrange):
    import timeit
    start_time = timeit.default_timer()
    cdef int key
    #mintomaxEventslistrange is basically range(2000000)
    dictlist = dict((key,  [[] for _ in xrange(1536)]) for key in mintomaxEventslistrange)      
# A seperate one to hold the timing info (did this to minimize memory of dictlist)
    window = dict((key,  [[] for _ in xrange(1536)]) for key in mintomaxEventslistrange)
#arrange waveforms
    cdef np.ndarray pixel=arr[:,0].astype(int)
    cdef int i
    cdef int lines = dim[0]
    for i in range(lines):

        dictlist[arr[i,1]][pixel[i]].extend(arr[i,9:])
        window[arr[i,1]][pixel[i]].append(arr[i,6]) 
    elapsed = timeit.default_timer() - start_time
    print elapsed
    return dictlist,window

0 个答案:

没有答案