在Python

时间:2017-01-07 20:35:11

标签: python loops numpy sum

我有一个在Python中运行的循环,但想要对结果求和。这是我的代码:

R=0.05
Timestep = np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Cash_flow = np.array([-10000, 300, 1000, 2500, 6000, 6100, 6250, 6250, 6300, 6300, 6200])

for i in Timestep:
    Present_value = Cash_flow[i]*(1+R)**-(Timestep[i])
    print(Present_value)

以下是结果:

    -10000.0
285.714285714
907.029478458
2159.59399633
4936.21484875
4779.50961546
4663.84622898
4441.75831331
4264.08798078
4061.03617217
3806.26217195

我想总结这些价值观;有一个简单的方法吗?

干杯!

2 个答案:

答案 0 :(得分:2)

避免循环&使用$someArray = [ ["id" => "16", "name" => "a"], ["id" => "17", "name" => "b"], ["id" => "18", "name" => "c"] ]; $newArray = array_combine(array_column($someArray, "id"), $someArray);

的向量功能
numpy

sum_of_values = np.sum(Cash_flow[:]*(1+R)**-(Timestep[:])) print(sum_of_values) 也可以代替sum

结果:

numpy.sum

与" classic"相同。方式,只有更快,没有循环:

24305.0530919

答案 1 :(得分:0)

您可以在设置Preset_value之后在for循环之前添加my_sum = 0并在for循环中添加my_sum += Preset_value

在程序结束时(for循环之外),您可以使用print(my_sum)打印它