草庐IT

cythonize

全部标签

python - 编译Cython代码时出现"error: Unable to find vcvarsall.bat"

按照建议here,我已经成功安装MicrosoftVisualC++CompilerforPython2.7编译一些Cython代码,但是:fromdistutils.coreimportsetupfromCython.Buildimportcythonizesetup(ext_modules=cythonize("module1.pyx"))仍然产生:error:Unabletofindvcvarsall.bat如何使用Python2.7编译Cython代码(例如在Windows7x64上)?注意:我已经仔细阅读了问题error:Unabletofindvcvarsall.bat但主

python - 更改 Cython 对 .so 文件的命名规则

我正在使用Cython从Python模块中生成一个共享对象。编译输出写入build/lib.linux-x86_64-3.5//.cpython-35m-x86_64-linux-gnu.so.是否有更改命名规则的选项?我希望将文件命名为.so没有解释器版本或arch附录。 最佳答案 似乎setuptools没有提供更改或完全删除后缀的选项。魔法发生在distutils/command/build_ext.py中:defget_ext_filename(self,ext_name):fromdistutils.sysconfigim

python - Cython:对于类型化的内存 View ,我应该使用 np.float_t 而不是 double

关于cython中的内存View,如果我正在使用numpyfloat数组?然后我应该以同样的方式输入cdef吗?g.ctypedefnp.float64_tnp_float_t...@cython.profile(False)@cython.wraparound(False)@cython.boundscheck(False)cdefnp_float_tmean_1d(np_float_t[:]v)nogil:cdefunsignedintn=v.shape[0]cdefnp_float_tn_sum=0.cdefPy_ssize_tiforiinrange(n):n_sum+=v[i

python - 如何在具有通用浮点类型的cython中声明一个ndarray

如果它应该能够处理float和double,那么在cython中声明numpy数组的最佳方法是什么?我想内存View是不可能的,因为数据类型是至关重要的,但是对于ndarray有什么方法可以给它一个通用的float类型,它仍然会受益于cython的快速性?所以这是我通常会做的:defF(np.ndarrayA):A+=10我看到还有:defF(np.ndarray[np.float32_t,ndim=2]A):A+=10但这又会为该类型提供一个位大小。我还考虑过根据位大小(32或64)在函数内部创建内存View。任何想法都受到高度赞赏非常感谢您提供有关floating类型的提示。我试过

python - 如何在 Cython 中声明二维列表

我正在尝试编译这种代码:defmy_func(doublec,intm):cdefdoublef[m][m]f=[[cforxinrange(m)]foryinrange(m)]...引发:ErrorcompilingCythonfile:------------------------------------------------------------defgrow(doublealpha,doublebeta,doublegamma,intm,ints):cdefdoublef[m][m]^--------------------------------------------

python - pickle cython类

我必须保存和加载一个cython类实例。我的cython类是这个加上几个方法:importnumpyasnpcimportnumpyasnpcimportcythoncdefclassPerceptron_avg_my:cdefintwlen,freePoscdefnp.ndarrayw,wtot,wac,wtotc#np.ndarray[np.int32_t]cdefnp.ndarraywmean#np.ndarray[np.float32_t]cdefpublicdictfposdef__cinit__(self,np.int64_twlen=4*10**7):self.fpos=

Python Line_profiler 和 Cython 函数

所以我尝试使用line_profiler在我自己的python脚本中分析一个函数,因为我想要逐行计时。唯一的问题是该函数是Cython函数,并且line_profiler无法正常工作。在第一次运行时,它只是因错误而崩溃。然后我添加了!pythoncython:profile=Truecython:linetrace=Truecython:binding=True在我的脚本的顶部,现在它运行正常,除了时间和统计数据是空白的!有没有办法将line_profiler与Cythonized函数一起使用?我可以分析非Cythonized函数,但它比Cythonized慢得多,以至于我无法使用来自

python - 如何用 numpy 在 Cython 中表示 inf 或 -inf?

我正在用cython逐个元素地构建一个数组。我想在某些条目中存储常量np.inf(或-1*np.inf)。但是,这将需要返回Python以查找inf的开销。是否有与此常量等效的libc.math?或者其他一些可以轻松使用的值,相当于(-1*np.inf)并且可以在没有开销的情况下从Cython使用?EDIT例如,您有:cdefdoublevalue=0forkinxrange(...):#use-infhere--howtoavoidreferringtonp.infandcallingbacktopython?value=-1*np.inf 最佳答案

python - Cython:在没有 NumPy 数组的情况下创建内存 View ?

由于我发现内存View既方便又快速,因此我尽量避免在cython中创建NumPy数组并使用给定数组的View。但是,有时无法避免,不是更改现有数组而是创建一个新数组。在上层函数中这并不明显,但在通常被调用的子例程中却很明显。考虑以下功能#@cython.profile(False)@cython.boundscheck(False)@cython.wraparound(False)@cython.nonecheck(False)cdefdouble[:]vec_eq(double[:]v1,int[:]v2,intcond):'''Functionoutputcorrespondsto

python - Cython 编译错误,include_path 作为 cythonize 中的关键字

我有一个代码片段,叫做“test.pyx”:importnumpyasnpcimportnumpyasnpprint(np.arange(10))然后我写了两个setup.py来编译它们。第一个工作正常:fromdistutils.coreimportsetupfromdistutils.extensionimportExtensionfromCython.Buildimportcythonizeimportnumpyasnpextensions=[Extension('test',['test.pyx'],include_dirs=[np.get_include()]),]setup