2014-03-28 48 views
0

我想知道如何通過一個numpy數組,一步一步地繁殖。 cumsum函數對於我真正想要做的事情是不正確的。我想一個for循環可以工作?numpy乘法不起作用

例如,如果我有以下陣列

data = [1.01, 1.02, 1.08, 0.99, 0.98, 1.02] 

,我想10,000,但在累積的方式,通過這個數組乘...如:

[10100, 10302, 11126.16, 11014.89, 10794.60, 11010.49] 

萬*數據[0],則該結果*數據[1],則該結果*數據[2] ..等

回答

8

IIUC,你想cumprod

>>> data = np.array([1.01, 1.02, 1.08, 0.99, 0.98, 1.02]) 
>>> data.cumprod() * 10000 
array([ 10100.  , 10302.  , 11126.16  , 11014.8984 , 
     10794.600432 , 11010.49244064]) 
+0

感謝帝斯曼 - 這非常有用!我找到了這些類型功能的在線列表。謝謝。 –

1

使用for循環:

result = 10000 
for i in xrange(len(array)): 
    array[i] *= result 
    result = array[i] 
+0

奧特洛狐猴 - 謝謝你的 'for循環'。儘管帝斯曼的答案可能更容易操作,但你的作品也很有用,而且非常有用。我已將它添加到我的數據庫中..感謝您的意見! –

+0

@antonio_zeus沒問題!我主要使用這個,因爲它可以與numpy和其他語言一起使用:) –