如何对数组中的特定元素求和

时间:2019-06-22 09:39:16

标签: python numpy

我想对数组中的元素求和。例如我有一个数组

[183948, 218520, 243141, 224539, 205322, 203855, 233281, 244830, 281245,
 280579, 235384, 183596, 106072,  88773,  63297,  38769,  28343]

我想将它分为三个不同部分,分别是前三个元素,接下来的10个元素和其余部分。  我唯一的想法是分离数组并使用sum方法。有更好的方法吗? 预先感谢!

2 个答案:

答案 0 :(得分:0)

尝试一下:

arr=[183948, 218520, 243141, 224539, 205322, 203855, 233281, 244830, 281245,
 280579, 235384, 183596, 106072,  88773,  63297,  38769,  28343]

first=arr[0:3]
second=arr[3:13]
last=arr[13:]

print(sum(first))
print(sum(second))
print(sum(last))

其他可扩展版本如下

arr=[183948, 218520, 243141, 224539, 205322, 203855, 233281, 244830, 281245,
 280579, 235384, 183596, 106072,  88773,  63297,  38769,  28343]

indices=[3,13]
results=[]
prev=0
for i in indices:
    results.append(sum(arr[prev:i]))
    prev=i
results.append(sum(arr[prev:]))

for res in results:
    print(res)

注意:将prev =设置为您要开始的索引,在这种情况下为0

答案 1 :(得分:0)

您可以使用reduceat的{​​{1}}方法:

np.add