我想对数组中的元素求和。例如我有一个数组
[183948, 218520, 243141, 224539, 205322, 203855, 233281, 244830, 281245,
280579, 235384, 183596, 106072, 88773, 63297, 38769, 28343]
我想将它分为三个不同部分,分别是前三个元素,接下来的10个元素和其余部分。 我唯一的想法是分离数组并使用sum方法。有更好的方法吗? 预先感谢!
答案 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