草庐IT

python - 以 Python 方式求和连续范围

我有一个sumranges()函数,它对在元组的元组中找到的所有连续数字的范围求和。举例说明:defsumranges(nums):returnsum([sum([1forjinrange(len(nums[i]))ifnums[i][j]==0ornums[i][j-1]+1!=nums[i][j]])foriinrange(len(nums))])>>>nums=((1,2,3,4),(1,5,6),(19,20,24,29,400))>>>printsumranges(nums)7如您所见,它返回元组内连续数字的范围数,即:len((1,2,3,4),(1),(5,6),(19,

python - 用 for 循环求和比用 reduce 求和更快?

我想看看reduce比使用for循环进行简单的数值运算要快多少。这是我发现的(使用标准timeit库):In[54]:print(setup)fromoperatorimportadd,iaddr=range(100)In[55]:print(stmt1)c=0foriinr:c+=iIn[56]:timeit(stmt1,setup)Out[56]:8.948904991149902In[58]:print(stmt3)reduce(add,r)In[59]:timeit(stmt3,setup)Out[59]:13.316915035247803再看一点:In[68]:timeit

python - 使用 Numpy 高效求和复杂矩阵乘积

我有一个矩阵X,我正在为其计算中间矩阵乘积的加权和。这是一个最小的可重现示例:importnumpyasnprandom_state=np.random.RandomState(1)n=5p=10X=random_state.rand(p,n)#10x5X_sum=np.zeros((n,n))#5x5#ThelengthofweightsarenotrelatedtoX'sdims,#butwillalwaysbesmallery=3weights=random_state.rand(y)forkinrange(y):X_sum+=np.dot(X.T[:,k+1:],X[:p-(k

python - MongoDB 聚合/组/求和查询转换为 pymongo 查询

我在goals集合中有一组条目,如下所示:{"user":"adam","position":"attacker","goals":8}{"user":"bart","position":"midfielder","goals":3}{"user":"cedric","position":"goalkeeper","goals":1}我想计算所有目标的总和。在MongoDBshell中,我是这样做的:>db.goals.aggregate([{$group:{_id:null,total:{$sum:"$goals"}}}]){"_id":null,"total":12}现在我想使用p

python pandas 按一天中的小时求和

我正在使用以下每小时计数(df)的数据集:datframe有8784行(2016年,每小时)。我想看看是否有每日趋势(例如,早上时间是否有所增加。为此,我想创建一个具有一天中的小时(从0到24)的图x轴和y轴上的骑车人数量(类似于下图中来自http://ofdataandscience.blogspot.co.uk/2013/03/capital-bikeshare-time-series-clustering.html的图片)。我尝试了pivot、resample和set_index的不同方法,并使用matplotlib绘制它,但没有成功。换句话说,我找不到一种方法来总结特定时间的每

Python - 求和外积的快速方法?

我正在寻找一种快速计算n个外积之和的方法。基本上,我从正态分布生成的两个矩阵开始-有n个向量和v个元素:A=np.random.normal(size=(n,v))B=np.random.normal(size=(n,v))我想要的是计算A和B中每个大小为v的向量的外积并将它们相加。请注意,A*B.T不起作用-A的大小为nxv,而B的大小为vxn。我能做的最好的事情就是创建一个循环,在其中构建外部产品,然后再求和。我是这样的:outers=np.array([A[i]*B[i].T])这将创建一个nxvxv数组(循环在列表推导中,随后转换为数组),然后我可以使用np.sum(outer

python - 跨数组求和模式

我很难找到正确的方法来做一些我认为使用numpy应该很简单的事情。我有一个数组(1000x1000),我想计算数组中特定模式的总和。例如:如果我有这个数组,并且想要计算两个单元格右对角线的总和,我希望[7,12,11,8,12,6,11,7](共8笔)。我该怎么做? 最佳答案 此操作称为二维convolution:>>>importnumpyasnp>>>fromscipy.signalimportconvolve2d>>>kernel=np.eye(2,dtype=int)>>>a=np.array([[5,3,7,1,2],[3

python - NumPy 根据另一个数组中的值对第三个数组中的每个匹配元素求和一个数组

我有两个numpy数组,一个包含值,一个包含每个值类别。values=np.array([1,2,3,4,5,6,7,8,9,10])valcats=np.array([101,301,201,201,102,302,302,202,102,301])我有另一个数组,其中包含我想要汇总的独特类别。categories=np.array([101,102,201,202,301,302])我的问题是,我将运行相同的求和过程数十亿次,每一微秒都很重要。我目前的实现如下。catsums=[]forxincategories:catsums.append(np.sum(values[np.wh

python - 求和导数

我不时使用sympy,但不是很擅长。目前我坚持定义一个索引变量列表,即n1到nmax并对其进行求和。然后我希望能够进行导数:到目前为止,我尝试了以下方法:numSpecies=10n=IndexedBase('n')i=symbols("i",cls=Idx)nges=summation(n[i],[i,1,numSpecies])但是,如果我尝试对一个变量求导数,则会失败:diff(nges,n[5])我也尽量避免使用IndexedBase.numSpecies=10n=symbols('n0:%d'%numSpecies)k=symbols('k',integer=True)nto

python - Pandas :如何根据其他列值的条件对列求和?

我有以下pandasDataFrame。importpandasaspddf=pd.read_csv('filename.csv')print(df)dogABC0dog10.7875750.1593300.0530951dog100.7706980.1694870.0598152dog110.7926890.1520430.0552683dog120.7850660.1603610.0545734dog130.7954550.1504640.0540815dog140.7948730.1507000.054426......8dog190.8115850.1402070.048208