Cython actually slowing me down

2019-09-17 19:44发布

I am trying to 'cythonize' my code however while the following code does work, it is not adding any speed to my code (in fact its a shade slower). I am wondering if anyone knows what I am doing wrong if anything at all. Note I am passing a numpy array and its data type should be float16. Never used cython before and I am using Jupyter notebook right now. In the cell above I have Cython loaded.

%%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条回答
登录 后发表回答