给定一个1-D数组A
和一个唯一且已排序的索引列表idx
,我想计算i = 0
到n - 1
的A[idx[i]:idx[i + 1]]
的总和。基于for的解决方案如下:
S = [A[idx[i]:idx[i + 1]].sum() for i in range(n - 1)]
但是,如果n
很大,这样做在Python层面上可能会非常缓慢。是否存在NumPy函数可以实现这一点(希望更快)?
给定一个1-D数组A
和一个唯一且已排序的索引列表idx
,我想计算i = 0
到n - 1
的A[idx[i]:idx[i + 1]]
的总和。基于for的解决方案如下:
S = [A[idx[i]:idx[i + 1]].sum() for i in range(n - 1)]
但是,如果n
很大,这样做在Python层面上可能会非常缓慢。是否存在NumPy函数可以实现这一点(希望更快)?