草庐IT

cython_bbox

全部标签

python - 自定义 Cython 生成的 .so 文件的位置

我有一个带有C库包装器的Cython包。这是包的树结构package/_api.pxd_wrap.pyxsetup.pywrapper/__init__.pywrap.py做pythonsetup.pybuild_ext--inplace将_wrap.so文件放在顶级package/目录中,这在大多数情况下通常是必需的。但是,我的wrap.py需要package/wrapper/目录中的_wrap.so。我想知道是否有一种方法可以让setup.py自行在所需位置创建.so文件,而无需手动将其复制并粘贴到该位置。 最佳答案 生成的.s

python - 为什么 Cython 比向量化的 NumPy 慢?

考虑以下Cython代码:cimportcythoncimportnumpyasnpimportnumpyasnp@cython.boundscheck(False)@cython.wraparound(False)deftest_memoryview(double[:]a,double[:]b):cdefintiforiinrange(a.shape[0]):a[i]+=b[i]@cython.boundscheck(False)@cython.wraparound(False)deftest_numpy(np.ndarray[double,ndim=1]a,np.ndarray[d

python - Cython 作为 Python 到 C 转换器的示例程序

我找到了here和here可以使用Cython将Python转换为C,但我找不到任何分步示例。假设我有一个简单的功能:foo.pyxcdefvoidfoo(double*x):x[0]=0.0setup.pyfromdistutils.coreimportsetupfromCython.Buildimportcythonizesetup(ext_modules=cythonize("foo.pyx"))然后我运行:pythonsetup.pybuild_ext--inplace来获取foo.c和foo.so文件(和构建目录)。好吧,我想在main.c中使用翻译后的(我希望)foo函数。

python - 用数组成员包装 C 结构以便在 python : SWIG? cython 中访问?类型?

我想从python访问一个C函数,该函数返回一个包含double组的结构(其中这些数组的长度由结构的其他int成员给出)。声明是typedefstruct{intdim;intvertices;intquadrature_degree;intpolynomial_degree;intngi;intquadrature_familiy;double*weight;/*1D:ngi*/double*l;/*2D:ngi*dim*/double*n;/*2D:ngi*vertices*/double*dn;/*3D:ngi*vertices*dim*/}element;externvoidg

python - 几个 .pyx 的 Cython setup.py

我想更快地进行cythonize。一个.pyx的代码是fromdistutils.coreimportsetupfromCython.Buildimportcythonizesetup(ext_modules=cythonize("MyFile.pyx"))如果我想cythonize怎么办几个扩展名为.pyx的文件,我将用它们的名字来调用文件夹中的所有.pyx文件在这两种情况下,setup.py的python代码是什么? 最佳答案 发件人:https://github.com/cython/cython/wiki/enhanceme

python - 如何构建和分发依赖于第三方 libFoo.so 的 Python/Cython 包

我编写了一个依赖于某些C扩展的Python模块。这些C扩展依次依赖于几个已编译的C库。我希望能够分发与所有依赖项捆绑在一起的此模块。我整理了一个最小示例(itcanbefoundonGitHubinitsentirety)。目录结构为:$tree..├──README.md├──poc│  ├──__init__.py│  ├──cython_extensions│  │  ├──__init__.py│  │  ├──cvRoberts_dns.c│  │  ├──cvRoberts_dns.h│  │  ├──helloworld.c│  │  ├──helloworld.pxd│

python - cython中的缓慢 split

为了在cython中快速除法,我可以使用编译指令@cython.cdivision(True)这是可行的,因为生成的C代码没有零除检查。但是由于某种原因,它实际上使我的代码变慢了。这是一个例子:@cython.boundscheck(False)@cython.wraparound(False)@cython.nonecheck(False)@cython.cdivision(True)defexample1(double[:]xi,double[:]a,double[:]b,intD):cdefintkcdefdouble[:]x=np.zeros(D)forkinrange(D):

python - 强制 NumPy ndarray 获取其在 Cython 中的内存所有权

正在关注thisanswerto"CanIforceanumpyndarraytotakeownershipofitsmemory?"我尝试通过Cython的NumPy包装器使用PythonCAPI函数PyArray_ENABLEFLAGS,但发现它没有公开。以下尝试手动公开它(这只是重现失败的最小示例)fromlibc.stdlibcimportmallocimportnumpyasnpcimportnumpyasnpnp.import_array()ctypedefnp.int32_tDTYPE_tcdefexternfrom"numpy/ndarraytypes.h":voidP

python - 在 Cython 中检查 nan

我正在寻找一种方法来检查Cython代码中的NaN值。目前,我正在使用:ifvalue!=value:#valueisNaNelse:#valueisnotNaN有更好的方法吗?是否可以使用像Numpy的isnan这样的函数? 最佳答案 取自http://groups.google.com/group/cython-users/msg/1315dd0606389416,你可以这样做:cdefexternfrom"math.h":bintisnan(doublex)然后你可以只使用isnan(value)。在较新版本的Cython中,

python - 如何使用 Cython 类型的内存 View 接受来自 Python 的字符串?

我如何编写一个Cython函数,将字节字符串对象(普通字符串、字节数组或bufferprotocol之后的其他对象)作为typedmemoryview?根据UnicodeandPassingStringsCython教程页面,以下应该有效:cpdefobjectprintbuf(unsignedchar[:]buf):chars=[chr(x)forxinbuf]printrepr(''.join(chars))它确实适用于字节数组和其他可写缓冲区:$python-c'importtest;test.printbuf(bytearray("test\0ing"))''test\x00i