[Numpy-discussion] diff and cumsum arguments

josef.pktd at gmail.com josef.pktd at gmail.com
Thu Nov 28 10:41:03 EST 2013


np.diff has keyword for `n-th order discrete difference`
but cumsum has different arguments and cannot integrate n times

What's the best "inverse function" for np.diff with n>1?

I briefly tried polynomial, but without success so far.

need two starting values to integrate for n=2

>>> a = np.random.randn(10)
>>> a - np.cumsum(np.r_[a[0], np.cumsum(np.r_[a[1]-a[0], np.diff(a, n=2)])])
array([  0.00000000e+00,   0.00000000e+00,   1.11022302e-16,
         2.22044605e-16,   3.33066907e-16,   2.22044605e-16,
         1.11022302e-16,   2.77555756e-16,   5.55111512e-16,
         8.88178420e-16])

>>> a - np.concatenate((a[:2], np.cumsum(np.cumsum(np.diff(a, n=2))) + a[0] + np.arange(2, len(a)) * (a[1] - a[0])))
array([  0.00000000e+00,   0.00000000e+00,   1.11022302e-16,
         2.22044605e-16,   3.33066907e-16,   2.22044605e-16,
         1.11022302e-16,   2.77555756e-16,   5.55111512e-16,
         1.77635684e-15])

Josef



More information about the NumPy-Discussion mailing list