Skip to main content

Numerical differentiation in python.

Project description

Documentation Status PyPI MIT License

Numerical differentiation of noisy time series data in python

derivative is a Python package for differentiating noisy data. The package showcases a variety of improvements that can be made over finite differences when data is not clean.

Want to see an example of how derivative can help? This package is part of PySINDy (github.com/dynamicslab/pysindy), a sparse-regression framework for discovering nonlinear dynamical systems from data.

This package binds common differentiation methods to a single easily implemented differentiation interface to encourage user adaptation. Numerical differentiation methods for noisy time series data in python includes:

  1. Symmetric finite difference schemes using arbitrary window size.

  2. Savitzky-Galoy derivatives (aka polynomial-filtered derivatives) of any polynomial order with independent left and right window parameters.

  3. Spectral derivatives with optional filter.

  4. Spline derivatives of any order.

  5. Polynomial-trend-filtered derivatives generalizing methods like total variational derivatives.

  6. Kalman derivatives find the maximum likelihood estimator for a derivative described by a Brownian motion.

from derivative import dxdt
import numpy as np

t = np.linspace(0,2*np.pi,50)
x = np.sin(x)

# 1. Finite differences with central differencing using 3 points.
result1 = dxdt(x, t, kind="finite_difference", k=1)

# 2. Savitzky-Golay using cubic polynomials to fit in a centered window of length 1
result2 = dxdt(x, t, kind="savitzky_golay", left=.5, right=.5, order=3)

# 3. Spectral derivative
result3 = dxdt(x, t, kind="spectral")

# 4. Spline derivative with smoothing set to 0.01
result4 = dxdt(x, t, kind="spline", s=1e-2)

# 5. Total variational derivative with regularization set to 0.01
result5 = dxdt(x, t, kind="trend_filtered", order=0, alpha=1e-2)

# 6. Kalman derivative with smoothing set to 1
result6 = dxdt(x, t, kind="kalman", alpha=1)

Contributors:

Thanks to the members of the community who have contributed!

Jacob Stevens-Haas

Kalman derivatives #12

References:

[1] Numerical differentiation of experimental data: local versus global methods- K. Ahnert and M. Abel

[2] Numerical Differentiation of Noisy, Nonsmooth Data- Rick Chartrand

[3] The Solution Path of the Generalized LASSO- R.J. Tibshirani and J. Taylor

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

derivative-0.4.2.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

derivative-0.4.2-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file derivative-0.4.2.tar.gz.

File metadata

  • Download URL: derivative-0.4.2.tar.gz
  • Upload date:
  • Size: 11.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.7.10 Darwin/21.4.0

File hashes

Hashes for derivative-0.4.2.tar.gz
Algorithm Hash digest
SHA256 97820d1b8ba2c6833f13c569f1ef431a87b2210379b44e280d155b0b9bee40a6
MD5 ad9f6bca65c955c0cfd9813fd119fc46
BLAKE2b-256 6aee3da404cc2ff01c858c27142b20775afe12f6847e33eaad4c82a34041d9a7

See more details on using hashes here.

File details

Details for the file derivative-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: derivative-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.5 CPython/3.7.10 Darwin/21.4.0

File hashes

Hashes for derivative-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 96506787033fb208c4d870f6fd5456535fea2c9f9904abcf1bd886cd52ee170c
MD5 20bb6510b6d8552fd8c251803bfe3512
BLAKE2b-256 d813cec3418c10fee8a9c43fe8e58657e3042d85c458ac1a6824d3d9f9b96a31

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page