%load_ext cythonmagic %%cython from libc.stdlib cimport malloc, free cimport numpy as np import numpy as np from cython cimport view N = 10000 def memview_malloc(): cdef int * m = malloc(N * sizeof(int)) cdef int[::1] b = m free(m) def memview_ndarray(): cdef int[::1] b = np.empty(N, dtype=np.int32) def memview_cyarray(): cdef int[::1] b = view.array(shape=(N,), itemsize=sizeof(int), format="i") %timeit memview_malloc() %timeit memview_ndarray() %timeit memview_cyarray()