草庐IT

cythonize

全部标签

python - 加快与 Cython 的日期时间比较

当传递一个numpy日期时间数组(或足以创建日期时间的详细信息)时,我正在尝试使用Cython加快日期时间之间的比较。首先,我试图了解Cython将如何加速整数之间的比较。testArrayInt=np.load("testArray.npy")Python方法:defprocessInt(array):compareSuccess=0#numberthatisgreaterthantestValue=1#valuetocompareagainstforcounterinrange(testArrayInt.shape[0]):iftestValue>testArrayInt[coun

python - 带有 cython 的 numpy 数组

我正在尝试将一些python代码移植到cython,但我遇到了一些小问题。下面是代码的代码片段(简化示例)。cimportnumpyasnpcimportcython@cython.boundscheck(False)#turnofbounds-checkingforentirefunction@cython.wraparound(False)@cython.nonecheck(False)defInterpolation(cells,intnmbcellsx):cdefnp.ndarray[float,ndim=1]cellecdefintcellnonzerocdefinti,lf

python - 如何在 Pandas 中调试 Cython 代码?

我已经下载了Pandas源代码,现在正在尝试调试它。我修改了Makefile:sparse:pandas/src/sparse.pyxpython-dbgsetup.pybuild_ext--inplace--pyrex-gdbbuild:clean_pycpython-dbgsetup.pybuild_ext--inplace--pyrex-gdbdevelop:build-python-dbgsetup.pydevelop--pyrex-gdb我还有一个非常简单的脚本:fromnumpyimportasarrayfrompandasimportalgosv=[4171.0,0.0]

python - Cython: Segmentation Fault Using API Embedding Cython to C 语言

我正尝试在O'reillyCythonbook之后将Cython代码嵌入到C中第8章。我在Cython的documentation上找到了这一段但还是不知道该怎么办:IftheCcodewantingtousethesefunctionsispartofmorethanonesharedlibraryorexecutable,thenimport_modulename()functionneedstobecalledineachofthesharedlibrarieswhichusethesefunctions.Ifyoucrashwithasegmentationfault(SIGS

python - Cython 静态链接与 python 运行时?

我有一个python2.7的Python脚本,这样说:print("HelloWorld!")接下来,我使用以下方法将其转换为C:pythoncython.py--embedhelloworld.py然后我尝试静态编译它:gcc-IC:\Python27\include-LC:\Python27\libshelloworld.c-Wl,-Bstatic-lpython27-Wl,-Bdynamic但是gcc只是创建了一个使用python27.dll运行时的二进制文件。如何创建静态链接到运行时的二进制文件? 最佳答案 如果您在Linu

python - Cython Memoryviews——来自结构数组?

我想用尽可能少的副本快速填充从C递增接收的一长串结构。如果我的结构只有主要数据类型,如下所示:cdefpackedstructoh_hi:intluckycharunlucky然后下面的工作正常:DEFMAXPOWER=1000000cdefoh_hi*hi2u=malloc(sizeof(oh_hi)*MAXPOWER)cdefoh_hi[:]hi2me=hi2u但是一旦我改变我的结构来保存一个字符数组:cdefpackedstructoh_hi:intluckycharunlucky[10]之前的memoryview转换编译但运行时给出:ValueError:Expected1di

python - 在 cython 中创建小数组需要大量时间

当我遇到这个非常奇怪的行为时,我正在为numpy编写一个新的随机数生成器,它根据任意分布生成随机数:这是test.pyx#cython:boundscheck=False#cython:wraparound=FalseimportnumpyasnpcimportnumpyasnpcimportcythondefBareBones(np.ndarray[double,ndim=1]a,np.ndarray[double,ndim=1]u,r):returnudefUntypedWithLoop(a,u,r):cdefinti,j=0foriinrange(u.shape[0]):j+=i

python - 加速 Python/Cython 循环。

我试图让python中的循环尽可能快地运行。所以我深入研究了NumPy和Cython。这是原始的Python代码:defcalculate_bsf_u_loop(uvel,dy,dz):"""Calculatebarotropicstreamfunctionfromzonalvelocityuvel(t,z,y,x)dy(y,x)dz(t,z,y,x)bsf(t,y,x)"""nt=uvel.shape[0]nz=uvel.shape[1]ny=uvel.shape[2]nx=uvel.shape[3]bsf=np.zeros((nt,ny,nx))forjninrange(0,nt)

python - 使用 cython 创建包,这样用户就可以在没有安装 cython 的情况下安装它

我有一个问题。我想分发我的cython驱动的包,但我看不到在setup.py中构建它们的简单方法。我希望setup.py能够:最重要的是:在没有cython的情况下安装我的包(从预先生成的C文件或通过预先安装cython)在sdist上重建(运行cythonize)包不需要硬编码我的cython模块列表(只需使用glob或其他东西)能够在没有.c文件(不应存储在git中)或.pyx(可能不会分发)的情况下工作。当然,至少其中一套会一直存在。目前在我痒痒的包里,我正在使用这个相当复杂的代码:importosfromglobimportglobfromdistutils.command.b

python - 如何在 Cython 中创建固定长度、可变的 Python 对象数组?

我需要一个python对象数组来创建一个trie数据结构。我需要一个像元组一样固定长度、像列表一样可变的结构。我不想使用列表,因为我希望能够确保列表的大小完全正确(如果它开始分配额外的元素,内存开销可能会很快增加,因为trie变得更大)。有没有办法做到这一点?我尝试创建一个对象数组:cdefclassTrieNode:cdefobjectmembers[32]...但这给出了一个错误:ErrorcompilingCythonfile:------------------------------------------------------------...cdefclassTrieN