如果我有z = cumsum([ 0, 1, 2, 6, 9 ])
,這給我z = [ 0, 1, 3, 9, 18 ]
,我該如何回到原始數組[ 0, 1, 2, 6, 9 ]
?numpy cumsum函數的反函數是什麼?
12
A
回答
14
z[1:] -= z[:-1].copy()
簡潔而又甜美,沒有緩慢的Python循環。除了第一個元素(z[1:]
)和除最後一個元素(z[:-1]
)以外的所有元素,我們都會看到所有元素,然後減去元素。該副本確保我們減去原始元素值而不是我們正在計算的值。 (On NumPy 1.13 and up,你可以跳過copy
電話。)
5
您可以使用np.diff
來計算元素1...N
將採取任何兩個元素之間的差異。這與cumsum
相反。唯一的區別是diff
不會返回第一個元素,但第一個元素在原始和cumsum
輸出中是相同的,因此我們只是重新使用該值。
orig = np.insert(np.diff(z), 0, z[0])
而不是insert
,你也可以使用np.concatenate
orig = np.concatenate((np.array(z[0]).reshape(1,), np.diff(z)))
我們也可以只複製和替換元素1...N
orig = z.copy()
orig[1:] = np.diff(z)
1
我最喜歡的:
orig = np.r_[z[0], np.diff(z)]
1
如果你想保持z
,您可以使用np.ediff1d
:
x = np.ediff1d(z, to_begin=z[0])
相關問題
- 1. python中zip的反函數是什麼?
- 2. 斷裂cumsum()函數
- 3. 修改後的cumsum函數
- 4. Python中的Cumsum函數
- 5. 什麼是異或的反函數?
- 6. 這個函數的反函數是什麼?
- 7. x = pow(y,5)是什麼反函數
- 8. numpy的bincount函數的反轉
- 9. numpy shadowing內建函數:什麼是內置函數的完全限定名稱?
- 10. 函數參數是什麼?
- 11. stringByAddingPercentEscapesUsingEncoding的反義詞是什麼?什麼函數取出%轉義?
- 12. 函數的__proto__是什麼?
- 13. 爲什麼numpy的einsum比numpy的內置函數慢?
- 14. 爲什麼numpy的einsum比numpy的內置函數更快?
- 15. 什麼是R的矩陣函數的numpy等價物?
- 16. 爲什麼Numpy的LinAlg Norm函數的命名方式是?
- 17. NumPy數學函數
- 18. Numpy/Arrays函數
- 19. gmtime_r函數的反函數
- 20. 什麼是`emit` javascript函數?
- 21. 什麼是stristr函數?
- 22. 什麼是is_admin函數?
- 23. 什麼是def to_s函數?
- 24. 什麼是TheStStubAMD64函數?
- 25. 什麼是函數指針?
- 26. 這是什麼?$(函數(){
- 27. 什麼是WebGLActiveInfo函數?
- 28. 封裝函數是什麼?
- 29. 什麼是內聯函數?
- 30. 什麼是setInterval函數
我不認爲這個工程,我收到此錯誤信息: AttributeError的:「名單」對象有沒有屬性「複製」 – Pedro
@Pedro:那是因爲你使用的是一個列表而不是一個數組。儘管存在問題的表示法,'np.cumsum'返回一個數組。 – user2357112
是的,是的! – Pedro