草庐IT

cython_bbox

全部标签

python - 使用 C 扩展或 Cython 优化非平凡 Python 应用程序的教程

Python社区发布了有用的引用资料,展示了如何分析Python代码,以及C或Cython中Python扩展的技术细节。.我仍在寻找教程,但是,对于非平凡的Python程序,以下内容:如何通过转换为C扩展来识别将从优化中受益的热点同样重要的是,如何识别将从转换为C扩展程序中受益的热点最后,如何进行从Python到C的适当转换,无论是使用PythonC-API还是(甚至可能更好)使用Cython。一个好的教程会为读者提供一个方法论,告诉他们如何通过一个完整的例子来推理优化问题。我没有成功找到这样的资源。你知道(或者你写过)这样的教程吗?为了澄清起见,我对仅涵盖以下内容的教程不感兴趣:使用

python - cython 中 np.int、np.int_、int 和 np.int_t 之间的区别?

我对这么多int有点挣扎cython中的数据类型。np.int,np.int_,np.int_t,int我猜int在纯python中相当于np.int_,那么np.int在哪里来自?我无法从numpy中找到文档?还有,为什么np.int_存在,因为我们已经有了int?在cython中,我猜int用作cdefint时变为C类型或ndarray[int],当用作int()时它仍然是python脚轮?是np.int_相当于long在C?所以cdeflong与cdefnp.int_相同?什么情况下应该使用np.int_t而不是np.int?例如cdefnp.int_t,ndarray[np.i

python - 在 Django 中使用 Cython。是否有意义?

是否可以优化在Django中使用Cython开发的关键任务应用程序的速度?最近我在互联网上读到,Cython可以像速度一样将Python代码转换为C。这对Django可行吗? 最佳答案 IsitpossibletooptimizespeedofamissioncriticalapplicationdevelopedinDjangowithCython这是值得怀疑的。Web应用程序的大部分响应时间是必须单独下载的非HTML元素。通常的经验法则是每个HTML页面有8个静态文件。(.CSS、.JS、图片等)由于这些静态内容都不是来自Dja

python - Cython 中的复数

在Cython中处理复数的正确方法是什么?我想使用dtypenp.complex128的numpy.ndarray编写一个纯C循环。在Cython中,关联的C类型定义在Cython/Includes/numpy/__init__.pxd作为ctypedefdoublecomplexcomplex128_t所以看起来这只是一个简单的C双复合体。但是,很容易获得奇怪的行为。特别是,有了这些定义cimportnumpyasnpimportnumpyasnpnp.import_array()cdefexternfrom"complex.h":passcdef:np.complex128_tva

python - 用 cython 简单包装 C 代码

我有许多C函数,我想从python调用它们。cython似乎是要走的路,但我真的找不到一个例子来说明这是如何完成的。我的C函数如下所示:voidcalculate_daily(char*db_name,intgrid_id,intyear,double*dtmp,double*dtmn,double*dtmx,double*dprec,double*ddtr,double*dayl,double*dpet,double*dpar);我要做的就是指定前三个参数(一个字符串和两个整数),并恢复8个numpy数组(或python列表。所有double组都有N个元素)。我的代码假定指针指向已分

python - ImportError:没有名为 Cython.Distutils 的模块

我在尝试使用其setup.py文件安装Python库zenlib时遇到了一个奇怪的问题。当我运行setup.py文件时,我得到一个导入错误,说ImportError:NomodulenamedCython.Distutils`但我确实有这样的模块,我可以在python命令行中导入它而没​​有任何麻烦。为什么我会收到此导入错误?我认为问题可能与我使用EnthoughtPythonDistribution的事实有关。,我预先安装了它,而不是使用Ubuntu12.04附带的Python2.7。更多背景:这正是我尝试运行setup.py时得到的结果:enwe101@enwe101-PCL:~/

python - 使用 LAPACK 分发基于 Cython 的扩展

我正在编写一个包含Cython扩展并使用LAPACK(和BLAS)的Python模块。如果需要,我愿意使用clapack或lapacke,或某种f2c或f2py解决方案。重要的是我能够在没有Python调用开销的情况下从Cython调用lapack和blas例程。我找到了一个例子here.但是,该示例取决于SAGE。我希望我的模块可以在不安装SAGE的情况下安装,因为我的用户不太可能想要或不需要SAGE做其他任何事情。我的用户可能安装了numpy、scipy、pandas和scikitlearn等软件包,因此这些都是合理的依赖项。要使用的最佳接口(interface)组合是什么,最小的

python - 用 cython 和 mingw 编译产生 gcc : error: unrecognized command line option '-mno-cygwin'

我正在尝试使用mingw(64位)在win764位中使用cython编译python扩展。我正在使用Python2.6(ActivePython2.6.6)和足够的distutils.cfg文件(将mingw设置为编译器)执行时>C:\Python26\programas\Cython>pythonsetup.pybuild_ext--inplace我收到一条错误消息,说gcc没有-mno-cygwin选项:>C:\Python26\programas\Cython>pythonsetup.pybuild_ext--inplacerunningbuild_extskipping'hel

python - 我应该如何构建包含 Cython 代码的 Python 包

我想制作一个Python包,其中包含一些Cython代码。我的Cython代码运行良好。但是,现在我想知道如何最好地打包它。对于大多数只想安装软件包的人,我想包含Cython创建的.c文件,并安排setup.py进行编译生成模块。那么用户不需要安装Cython来安装包。但是对于可能想要修改包的人,我还想提供Cython.pyx文件,并且以某种方式还允许setup.py使用Cython构建它们(因此那些用户将需要安装Cython)。我应该如何构建包中的文件以适应这两种情况?Cythondocumentationgivesalittleguidance.但它没有说明如何制作一个处理有/无C

c++ - 在 Cython 中做列表/字典的惯用方式?

我的问题:我发现使用STL映射和vector使用原始C++处理大型数据集通常比使用Cython快得多(并且内存占用更少)。我认为这种速度损失的一部分是由于使用了Python列表和字典,并且可能有一些技巧可以在Cython中使用较少的数据结构。例如,此页面(http://wiki.cython.org/tutorials/numpy)展示了如何通过预定义ND数组的大小和类型在Cython中非常快速地制作numpy数组。问题:有没有办法用列表/字典做类似的事情,例如通过大致说明您希望其中包含多少个元素或(键,值)对?也就是说,有没有一种惯用的方式将列表/字典转换为Cython中的(快速)数