Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 有计算部分和的NumPy函数吗?_Python_Python 3.x_Numpy - Fatal编程技术网

Python 有计算部分和的NumPy函数吗?

Python 有计算部分和的NumPy函数吗?,python,python-3.x,numpy,Python,Python 3.x,Numpy,给定一个一维数组,a和一个n唯一和排序索引列表idx,我想计算a[idx[I]:idx[I+1]对I=0到n-1的总和。基于for的解决方案是: S = [A[idx[i]:idx[i + 1]].sum() for i in range(n - 1)] 但我认为如果n像Python级别那样大,那么这将非常缓慢。是否有NumPy函数可以实现这一点(希望更快)?您正在寻找以下方法: [:-1]只是用来删除reduceat所附加的最后一个元素,该元素的总和是从idx[-1]到A.size准备好后,

给定一个一维数组,
a
和一个
n
唯一和排序索引列表
idx
,我想计算
a[idx[I]:idx[I+1]
I=0
n-1
的总和。基于for的解决方案是:

S = [A[idx[i]:idx[i + 1]].sum() for i in range(n - 1)]
但我认为如果
n
像Python级别那样大,那么这将非常缓慢。是否有NumPy函数可以实现这一点(希望更快)?

您正在寻找以下方法:


[:-1]
只是用来删除
reduceat
所附加的最后一个元素,该元素的总和是从
idx[-1]
A.size

准备好后,考虑选择并向上投票一个答案。我注意到你有很多问题的答案都很好,但你没有选择答案。选择一个答案不仅会略微提高你的声誉,而且会将问题从未回答的队列中移除。您可以随时更改选择。谢谢您的提醒。我刚刚整理了我以前的问题。谢谢!我不知道这种方法。但是,我认为人们应该注意这个案例
idx[-1]==len(A)
。(它在
reducecat
中引发
索引器
),因此可能需要单独处理此特殊情况。
np.add.reduceat(A, idx)[:-1]