2017-01-07 9 views
0

私はPythonでループを実行していますが、結果を合計したいと思います。ここに私のコードは次のとおりです。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

でそれを印刷することができます(sumも代わりに働くだろうnumpy.sum

での結果:

24305.0530919 

だけ速く、ループせずに、「古典的」な方法と同じが得られます。

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

ありがとう!これは素晴らしい :-) – dominoslater

0

Preset_valueを設定した後、forループの前にmy_sum = 0を追加し、forループの内部にmy_sum += Preset_valueを簡単に追加することができます。プログラム(forループの外)の終わりに

、あなたはnumpy

sum_of_values = np.sum(Cash_flow[:]*(1+R)**-(Timestep[:])) 
print(sum_of_values) 

のループ&利用ベクトル性能を避けるprint(my_sum)

+0

感謝を - 本当にこの代替を感謝しています。 – dominoslater

関連する問題