创建一个新的 python 列表,在不使用 for 循环的情况下显示另一个列表中集合数字的累计总数
Create a new python list that shows the accumulated total from set numbers in another list without using for loops
我有一个 python 列表 (lpttg1 = [1,2,3,4,5]) 并想添加此列表中的数字以创建一个具有累计总数的新列表。所以输出列表应该是这样的 [1.0, 3.0, 6.0, 10.0, 15.0]。正如我在下面的代码段中所示,这可以使用 for 循环来完成。我想知道是否有矢量化形式或任何其他方法来删除 for 循环并完成任务。
lpttg1 = [1,2,3,4,5]
AcccumMeltlp1 = []
MMeltlp1 = 0.
for i in lpttg1:
#print i
MMeltlp1 = MMeltlp1+i
#print MMeltbas_peri
AcccumMeltlp1.append(MMeltlp1)
AcccumMeltlp1
谢谢
您正在寻找 numpy.cumsum()
当我们想要计算给定轴上数组元素的累积和时使用函数。
import numpy as np
in_arr = np.array([1,2,3,4,5,6])
output_array = np.cumsum(in_arr)
output_array
array([ 1, 3, 6, 10, 15, 21])
DOCS 寻求更多帮助
pandas 的方法,使用 cumsum
:
import pandas as pd
lpttg1 = [1,2,3,4,5]
AcccumMeltlp1=pd.Series(lpttg1).cumsum().tolist()
print(AcccumMeltlp1)
输出:
[1, 3, 6, 10, 15]
您可以使用 itertools
按以下方式执行此操作:
from itertools import accumulate
l = [1,2,3,4,5]
AcccumMeltlp1 = list(accumulate(l))
您可以使用functools.reduce
from functools import reduce
lpttg1 = [1, 2, 3, 4, 5]
AcccumMeltlp1 = reduce(labmda x, y: x + [x[-1] + y], lpttg1, [0])[1:]
如果列表大小小于 10 且始终固定,请使用此选项。
lst = [1, 2, 3]
newlist = [sum(lst[:1]), sum(lst[:2]), sum(lst[:3])]
print(newlist)
我有一个 python 列表 (lpttg1 = [1,2,3,4,5]) 并想添加此列表中的数字以创建一个具有累计总数的新列表。所以输出列表应该是这样的 [1.0, 3.0, 6.0, 10.0, 15.0]。正如我在下面的代码段中所示,这可以使用 for 循环来完成。我想知道是否有矢量化形式或任何其他方法来删除 for 循环并完成任务。
lpttg1 = [1,2,3,4,5]
AcccumMeltlp1 = []
MMeltlp1 = 0.
for i in lpttg1:
#print i
MMeltlp1 = MMeltlp1+i
#print MMeltbas_peri
AcccumMeltlp1.append(MMeltlp1)
AcccumMeltlp1
谢谢
您正在寻找 numpy.cumsum()
当我们想要计算给定轴上数组元素的累积和时使用函数。
import numpy as np
in_arr = np.array([1,2,3,4,5,6])
output_array = np.cumsum(in_arr)
output_array
array([ 1, 3, 6, 10, 15, 21])
DOCS 寻求更多帮助
pandas 的方法,使用 cumsum
:
import pandas as pd
lpttg1 = [1,2,3,4,5]
AcccumMeltlp1=pd.Series(lpttg1).cumsum().tolist()
print(AcccumMeltlp1)
输出:
[1, 3, 6, 10, 15]
您可以使用 itertools
按以下方式执行此操作:
from itertools import accumulate
l = [1,2,3,4,5]
AcccumMeltlp1 = list(accumulate(l))
您可以使用functools.reduce
from functools import reduce
lpttg1 = [1, 2, 3, 4, 5]
AcccumMeltlp1 = reduce(labmda x, y: x + [x[-1] + y], lpttg1, [0])[1:]
如果列表大小小于 10 且始终固定,请使用此选项。
lst = [1, 2, 3]
newlist = [sum(lst[:1]), sum(lst[:2]), sum(lst[:3])]
print(newlist)