草庐IT

cython_sum

全部标签

python - 在cython中编译时如何删除python断言?

所以,这是我的问题:我用python编写代码,但我需要提高代码中某些太慢的部分的性能。一个好的(和简单的)解决方案似乎是使用cython;我试了一下,取得了不错的效果。问题是我在python代码中使用了assert语句。在使用cython之前,我可以使用-OO选项编译我的python代码,这样我就可以交付一个不执行任何断言测试的版本,并且仍然有用于调试的断言。但是在cython中编译的文件似乎总是执行断言。是否有一些选项可以传递给cython编译以删除(或不删除)断言? 最佳答案 如果您定义C预处理器宏PYREX_WITHOUT_A

matlab中sum函数的用法

一、语法S=sum(A)S=sum(A,'all')S=sum(A,dim)S=sum(A,vecdim)S=sum(___,outtype)S=sum(___,nanflag)二、说明1、S=sum(A)返回A沿大小不等于1的第一个数组维度的元素之和。如果A是向量,则sum(A)返回元素之和。如果A是矩阵,则sum(A)将返回包含每列总和的行向量。如果A是多维数组,则sum(A)沿大小不等于1的第一个数组维度计算,并将这些元素视为向量。此维度会变为1,而所有其他维度的大小保持不变。2、S=sum(A,‘all’)计算A的所有元素的总和。3、S=sum(A,dim)沿维度dim返回总和。例如,

python - 同一数据框中的 Pandas 和 sum 和 cum sum

我使用下面的代码创建总和和cumsum。但它们位于两个独立的数据框中。我想要一应俱全asp=np.array(np.array([0,0,1]))asq=np.array(np.array([10,10,20]))columns=['asp']df=pd.DataFrame(asp,index=None,columns=columns)df['asq']=asqdf=df.groupby(by=['asp']).sum()dfcum=df.cumsum()如何在同一个数据框中同时拥有总和和cumsum。完全不清楚如何做到这一点。下面是我想要的asqsumcumsumasp0202012

python - cython pyximport 在哪里编译?

我的cython/pyximport代码在读/写文件系统上运行良好。但是(出于测试目的),我需要在只读文件系统上进行尝试。如何更改cython/pyximport临时目录?(它在哪里完成工作?即即时编译?)如何将此“工作目录”设置为当前目录以外的其他位置,例如/tmp/(不是ro,而是rw)?回溯:!!File"/usr/lib/python2.7/site-packages/Cython/Distutils/build_ext.py",line301,incython_sourcesself.mkpath(os.path.dirname(target))!!File"/usr/lib

python - python hashlib 和 sha512sum 工具在 SHA512 上的区别

我从linux'sha512sum'工具和pythonhashlib库得到不同的消息摘要。这是我在Ubuntu8.10上得到的结果:$echotest|sha512sum0e3e75234abc68f4378a86b3f4b32a198ba301845b0cd6e50106e874345700cc6663a86c1ea125dc5e92be17c98f9a0f85ca9d5f595db2012f7cc3571945c123-$pythonPython2.5.2(r252:60911,Oct52008,19:24:49)[GCC4.3.2]onlinux2Type"help","copy

python - 为什么 .sum() 比 .any() 或 .max() 快?

在优化代码的缓慢部分时,A.sum()的速度几乎是A.max()的两倍,这让我感到惊讶:In[1]:A=arange(10*20*30*40).reshape(10,20,30,40)In[2]:%timeitA.max()1000loops,bestof3:216usperloopIn[3]:%timeitA.sum()10000loops,bestof3:119usperloopIn[4]:%timeitA.any()1000loops,bestof3:217usperloop我原以为A.any()会快得多(它应该只需要检查一个元素!),然后是A.max(),而A.sum()将是最

python - 如何控制 cython cdef 类的模块/名称?

我正在使用cython将C++库公开给python,方法是将所有包装器对象和函数放在内部模块_pydynd中,然后通过不同的python模块公开它们。我想控制出现在这些扩展类中的模块和类的名称,使其看起来像dynd.nd.array,例如,而不是_pydynd.w_array,这是包装类的内部名称。cython是否有执行此操作的机制?我希望找到类似于在编写定义时如何重命名C/C++函数的内容,但我的搜索结果一无所获。生成的C++代码应该不同,这里是tp_name行:staticPyTypeObject__pyx_type_7_pydynd_w_array={PyVarObject_HE

python - cython numpy 累积函数

我需要实现一个函数来对具有可变部分长度的数组的元素求和。所以,a=np.arange(10)section_lengths=np.array([3,2,4])out=accumulate(a,section_lengths)printoutarray([3.,7.,35.])我在这里尝试用cython实现:https://gist.github.com/2784725为了性能,我正在将section_lengths都相同的情况与纯numpy解决方案进行比较:LEN=10000b=np.ones(LEN,dtype=np.int)*2000a=np.arange(np.sum(b),dt

python - 使用 Cython 重载 Python 数学函数

这是我的基本问题:我有一个导入了的Python文件frommathimportsin,cos,sqrt我需要这个文件仍然是100%CPython兼容的,以允许我的开发人员编写100%CPython代码并使用为Python开发的优秀工具。现在进入Cython。在我的Python文件中,trig函数被调用了数百万次(代码的基础,无法更改)。有什么办法可以通过主python文件中的一些Python-fu,或者Cython魔法,否则我可以使用C/C++数学函数,使用Cython代码的一些变体cdefexternfrom"math.h":doublesin(double)那会给我接近C的性能,这

python - Cython 的功率谱

我正在尝试使用Cython优化我的代码。它正在做一个功率谱,而不是使用FFT,因为这是我们在类里面被告知要做的。我试过用Cython编写代码,但没有发现任何区别。这是我的代码#!/usr/bin/envpython#-*-coding:utf8-*-from__future__importdivisioncimportnumpyasnpimportnumpyasnpcimportcython@cython.boundscheck(False)defpower_spectrum(time,data,doublef_min,doublef_max,doubledf,w=1):cdefdou