草庐IT

cythonized

全部标签

python - Cython:在结构中嵌套 union

在Cython胶水声明中,如何表示包含匿名union的Cstruct类型?例如,如果我有一个C头文件mystruct.h包含structmystruct{union{doubleda;uint64_tia;};};然后,在对应的.pyd文件中cdefexternfrom"mystruct.h":structmystruct:#whatgoeshere???我试过这个:cdefexternfrom"mystruct.h":structmystruct:union{doubleda;uint64_tia;};但这只在union行给我“C变量声明中的语法错误”。

c++ - 我可以用 Cython 覆盖 Python 中的 C++ 虚函数吗?

我有一个带有虚方法的C++类://C++classA{public:A(){};virtualintoverride_me(inta){return2*a;};intcalculate(inta){returnthis->override_me(a);}};我想做的是用Cython将这个类暴露给Python,在Python中继承这个类并正确重写调用:#python:classB(PyA):defoverride_me(self,a):return5*ab=B()b.calculate(1)#shouldreturn5insteadof2有办法吗?现在我在想,如果我们也可以在Cython

python - 如何在 cython 中处理 np.ndarray 的内存?

例如,如果我这样做:cdefnp.ndarray[np.int64_t,ndim=1]my_array我的my_array存储在哪里?我会认为,因为我没有告诉cython存储在堆上,所以它会存储在堆栈上,但在进行以下实验后,它似乎存储在堆上,或者以某种方式有效地进行内存管理。如何根据my_array管理内存?也许我遗漏了一些明显的东西,但我找不到任何相关文档。importnumpyasnpcimportcythoncimportnumpyasnpfromlibc.stdlibcimportmalloc,freedefbig_sum():#freezesup:#"a"iscreatedo

python - 为什么这段代码在 Cython 中比在 Python 中慢?

由于性能问题,我开始学习Cython。此特定代码试图在交通建模(用于规划)领域实现一些新算法。我决定从一个非常简单的函数开始,我会使用很多次(数亿次)并且肯定会从性能提升中受益。我用三种不同的方式实现了这个功能,并针对相同的参数(为了简单起见)分别测试了1000万次:cython模块中的Cython代码。运行时间:3.35sCython模块中的Python代码。运行时间:4.88s主脚本上的Python代码。运行时间:2.98s如您所见,cython代码比cython模块中的python代码慢45%,比主脚本上编写的代码慢64%。这怎么可能?我哪里出错了?cython代码是这样的:de

python - Cython 编译错误 : dynamic module does not define module export function

我正在用Cython构建一个包。我使用以下作为setup.py的结构:fromdistutils.coreimportsetupfromdistutils.extensionimportExtensionfromCython.Buildimportcythonizeimportnumpyimportscipyextensions=[Extension("xxxxx",["xxxx/xxxxx.pyx"],include_dirs=[numpy.get_include(),"."]),Extension("nnls",["xxxxx/xxxxx.pyx"],include_dirs=[n

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