草庐IT

cython-users

全部标签

python - 将 Cython 中的 numpy 数组传递给需要动态分配数组的 C 函数

我有一些具有以下声明的C代码:intmyfunc(intm,intn,constdouble**a,double**b,double*c);所以a是常量二维数组,b是二维数组,c是一维数组,都是动态分配的。b和c在传递给myfunc之前不需要具体是什么,应该理解为输出信息。出于这个问题的目的,我不允许更改myfunc的声明。问题1:如何将给定的numpy数组a_np转换为具有此C函数所需格式的数组a,因此我可以用a在Cython中调用这个C函数吗?问题2:b和c的声明是否正确,或者它们是否需要采用其他格式才能用于C函数将它们理解为二维和一维数组(分别)?我的尝试:我的文件.pxdcde

python /赛通 : Using SciPy with Cython

Cython教程展示了一个很好的示例,说明如何将Numpy与Cython结合使用。但是,我有使用scipy.stats包的代码,在尝试编译代码时,出现如下错误:dvi.pyx:7:8:'scipy.stats.pxd'notfound我担心Cython(?)不支持scipy。有人可以评论在Cython中使用scipy或指出一些资源/教程的方向吗?谢谢! 最佳答案 所以我在CythonGoogleGroup(https://groups.google.com/forum/?fromgroups#!searchin/cython-use

python - Cython 正确性

Cython生成的代码是否总是与生成它的Python代码一样正确?它可能会帮助其他读者解决Cython静态类型声明和其他Cython功能(如果有的话)的使用问题,尽管我只对通过将Python模块重命名为*.pyx来创建Cython文件的情况感兴趣。我只关心Cython涵盖的Python子集。 最佳答案 一般来说,是的。当然还有bugs(虽然很多都围绕着扩展支持的Python子集,但实际上导致生成的C代码不正确的错误相对较少),并且有一些必要的caveats(尽管看起来该短列表中只有一项偏离了Python语义)。当您在纯Python模

python - Cython 说缓冲区类型只允许作为函数局部变量,即使对于 ndarray.copy()

我是Cython的新手,遇到了这段代码:importnumpyasnpcimportnumpyasnptestarray=np.arange(5)cdefnp.ndarray[np.int_t,ndim=1]testarray1=testarray.copy()cdefnp.ndarray[np.float_t,ndim=1]testarray2=testarray.astype(np.float)在编译期间,它说Buffertypesonlyallowedasfunctionlocalvariables。但是,我使用的是.copy()或.astype(),它返回的不是内存View,而

python - 导入错误 : No module named 'Cython'

这个问题在这里已经有了答案:DealingwithmultiplePythonversionsandPIP?(27个答案)关闭12个月前。我正在尝试fromCython.Buildimportcythonize并收到消息ImportError:Nomodulenamed'Cython',但我使用命令安装了Cythonpip安装Cython。怎么了?python3.5赛通0.25.2Windows8

python - Rpy2 错误 wac-a-mole : R_USER not defined

我在Windows732位和R版本3.1.0上运行Python(x,y)2.7。我一直在尝试安装Rpy2,但遇到了很多错误。我终于找到了这个网站,它为Windows预编译了python模块http://www.lfd.uci.edu/~gohlke/pythonlibs/,所以我下载了rpy2‑2.4.2.win32‑py2.7.exe。当我这样做并尝试时importrpy2.robjectsasrobjects我有一个错误说它找不到R_HOME,所以我更新了我的路径变量。这是固定的,但后来我收到一条错误消息,说它找不到R_USER。我再次根据SO响应更新了我的PYTHONPATH变量

python - 有条件的 `ctypedef` 与 Cython

我需要在我正在编写的一些包装代码中访问stdint.h中的uint64_ttypedef,但我不知道如何完成它。问题是,据我从文档中可以看出,我的ctypedef必须采用以下形式:ctypedefunsignedlonguint64_t或ctypedefunsignedlonglonguint64_t取决于bits/wordsize.h中的WORDSIZE是64还是32。我一直没能找到如何访问这个预处理器定义来自Cython,如果可以的话,Cython似乎不喜欢if语句中的ctypedef语句,当我尝试将if语句放入cdefblock,它似乎将它与声明混淆了。有任何想法吗?希望我只是在

python - 获取 Cython 指针的值

我正在编写一个构造malloc的unsignedchar*数组的函数,然后重新调整指针。在纯Cython或C中,这很容易。您所要做的就是为函数设置返回类型,并返回指向数组的指针。完毕。但是,我已经到了需要将指向在Cython中创建的数组的指针返回给Python的地步。我知道指针只是内存地址。有什么方法可以将Cython指针作为Python对象(例如int或hex,因为内存地址本质上是一个数字)返回到Python,这样我就可以基本上在Python中管理指针了?我试过像这样返回指针的值:cdefunsignedchararray[8]defreturn_pointer():return&a

python - Cython 的计算不正确

我实现了Madhava–Leibniz系列在Python中计算pi,然后在Cython中提高速度。Python版本:from__future__importdivisionpi=0l=1x=TruewhileTrue:ifx:pi+=4/lelse:pi-=4/lx=notxl+=2printstr(pi)Cython版本:cdeffloatpi=0.0cdeffloatl=1.0cdefunsignedshortx=TruewhileTrue:ifx:pi+=4.0/lelse:pi-=4.0/lx=notxl+=2printstr(pi)当我停止Python版本时,它已将pi正确计

python - 如何在基于类的 View 中使用 user_passes_test 装饰器?

我试图在允许用户查看特定用户设置页面之前检查某些条件。我正在尝试使用user_passes_test装饰器来实现这一点。该函数位于基于类的View中,如下所示。我正在使用方法装饰器来装饰View中的get_initial函数。classUserSettingsView(LoginRequiredMixin,FormView):success_url='.'template_name='accts/usersettings.html'defget_form_class(self):ifself.request.user.profile.is_student:returnform1ifse