pynumdiff 0.2.2__tar.gz → 0.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/PKG-INFO +8 -5
  2. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/README.md +6 -4
  3. pynumdiff-0.2.3/notebooks/7_circular_domain.ipynb +140 -0
  4. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/notebooks/README.md +2 -1
  5. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/__init__.py +1 -1
  6. pynumdiff-0.2.3/pynumdiff/_version.py +24 -0
  7. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/basis_fit.py +119 -0
  8. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/kalman_smooth.py +19 -8
  9. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/optimize.py +1 -1
  10. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/tests/test_diff_methods.py +41 -1
  11. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/utils/utility.py +2 -0
  12. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff.egg-info/PKG-INFO +8 -5
  13. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff.egg-info/SOURCES.txt +1 -0
  14. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff.egg-info/requires.txt +1 -0
  15. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pyproject.toml +2 -1
  16. pynumdiff-0.2.2/pynumdiff/_version.py +0 -34
  17. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/.coveragerc +0 -0
  18. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/.editorconfig +0 -0
  19. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/.github/workflows/release.yml +0 -0
  20. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/.github/workflows/test.yml +0 -0
  21. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/.gitignore +0 -0
  22. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/.pylintrc +0 -0
  23. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/.readthedocs.yaml +0 -0
  24. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/CITATION.cff +0 -0
  25. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/CONTRIBUTING.md +0 -0
  26. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/LICENSE.txt +0 -0
  27. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/Makefile +0 -0
  28. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/LICENSE.rst +0 -0
  29. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/basis_fit.rst +0 -0
  30. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/code.rst +0 -0
  31. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/conf.py +0 -0
  32. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/contact.rst +0 -0
  33. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/contributing.rst +0 -0
  34. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/finite_difference.rst +0 -0
  35. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/index.rst +0 -0
  36. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/kalman_smooth.rst +0 -0
  37. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/linear_model.rst +0 -0
  38. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/optimize.rst +0 -0
  39. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/polynomial_fit.rst +0 -0
  40. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/smooth_finite_difference.rst +0 -0
  41. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/total_variation_regularization.rst +0 -0
  42. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/utils/evaluate.rst +0 -0
  43. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/utils/simulate.rst +0 -0
  44. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/utils/utility.rst +0 -0
  45. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/docs/source/utils.rst +0 -0
  46. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/logo.png +0 -0
  47. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/notebooks/1_basic_tutorial.ipynb +0 -0
  48. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/notebooks/2_optimizing_hyperparameters.ipynb +0 -0
  49. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/notebooks/3_automatic_method_suggestion.ipynb +0 -0
  50. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/notebooks/4_performance_analysis.ipynb +0 -0
  51. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/notebooks/5_robust_outliers_demo.ipynb +0 -0
  52. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/notebooks/6_multidimensionality_demo.ipynb +0 -0
  53. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/README.md +0 -0
  54. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/finite_difference.py +0 -0
  55. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/linear_model.py +0 -0
  56. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/polynomial_fit.py +0 -0
  57. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/smooth_finite_difference.py +0 -0
  58. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/tests/__init__.py +0 -0
  59. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/tests/conftest.py +0 -0
  60. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/tests/test_optimize.py +0 -0
  61. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/tests/test_utils.py +0 -0
  62. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/total_variation_regularization.py +0 -0
  63. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/utils/__init__.py +0 -0
  64. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/utils/_chartrand_tvregdiff.py +0 -0
  65. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/utils/evaluate.py +0 -0
  66. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/utils/old_pi_cruise_control.py +0 -0
  67. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff/utils/simulate.py +0 -0
  68. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff.egg-info/dependency_links.txt +0 -0
  69. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/pynumdiff.egg-info/top_level.txt +0 -0
  70. {pynumdiff-0.2.2 → pynumdiff-0.2.3}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pynumdiff
3
- Version: 0.2.2
3
+ Version: 0.2.3
4
4
  Summary: pynumdiff: numerical derivatives in python
5
5
  Maintainer-email: Floris van Breugel <fvanbreugel@unr.edu>, Pavel Komarov <pvlkmrv@uw.edu>, Yuying Liu <yliu814@uw.edu>
6
6
  License-Expression: MIT
@@ -19,6 +19,7 @@ License-File: LICENSE.txt
19
19
  Requires-Dist: numpy
20
20
  Requires-Dist: scipy
21
21
  Requires-Dist: matplotlib
22
+ Requires-Dist: pywavelets
22
23
  Provides-Extra: advanced
23
24
  Requires-Dist: cvxpy; extra == "advanced"
24
25
  Requires-Dist: tqdm; extra == "advanced"
@@ -61,7 +62,7 @@ Python methods for numerical differentiation of noisy data, including multi-obje
61
62
 
62
63
  ## Introduction
63
64
 
64
- PyNumDiff is a Python package that implements various methods for computing numerical derivatives of noisy data, which can be a critical step in developing dynamic models or designing control. There are seven different families of methods implemented in this repository:
65
+ PyNumDiff is a Python package that implements many methods for computing numerical derivatives and smooth estimates of noisy data, which can be a critical step in developing dynamic models or designing control. There are seven different families of methods implemented in this repository:
65
66
 
66
67
  1. prefiltering followed by finite difference calculation
67
68
  2. iterated finite differencing
@@ -71,9 +72,11 @@ PyNumDiff is a Python package that implements various methods for computing nume
71
72
  6. generalized Kalman smoothing
72
73
  7. local approximation with linear model
73
74
 
74
- For a full list, explore modules in the [Sphinx documentation](https://pynumdiff.readthedocs.io/master/), or read section 7 of our [Taxonomy Paper](https://arxiv.org/abs/2512.09090).
75
+ All are ultimately smoothing with similar runtime and accuracy, but some have situational advantages over others: For example, `robustdiff` is specialized to handle outliers; `splinediff`, `polydiff`, `rtsdiff`, and `robustdiff` can handle missing data; `splinediff`, `polydiff`, `rbfdiff`, `rtsdiff`, and `robustdiff` can handle irregularly-spaced data; and `rtsdiff` can handle inputs on a wrapped domain, like angles. All methods can accept blocks of multidimensional data, differentiating all vectors along the dimension given by the `axis` parameter.
75
76
 
76
- Most of these methods have multiple parameters, so we take a principled approach and propose a multi-objective optimization framework for choosing parameters that minimize a loss function to balance the faithfulness and smoothness of the derivative estimate. For more details, refer to [this paper](https://doi.org/10.1109/ACCESS.2020.3034077).
77
+ For a full list and comparison, see section 7 of our [Taxonomy Paper](https://arxiv.org/abs/2512.09090) and explore modules in the [Sphinx documentation](https://pynumdiff.readthedocs.io/master/).
78
+
79
+ All methods have hyperparameters, so we take a principled approach and propose a multi-objective optimization framework for choosing settings that minimize a loss function to balance the faithfulness and smoothness of the derivative estimate. For more details, refer to [this paper](https://doi.org/10.1109/ACCESS.2020.3034077).
77
80
 
78
81
  ## Installing
79
82
 
@@ -89,7 +92,7 @@ For more details, read our [Sphinx documentation](https://pynumdiff.readthedocs.
89
92
  somethingdiff(x, dt, **kwargs)
90
93
  ```
91
94
 
92
- where `x` is data, `dt` is a step size, and various keyword arguments control the behavior. Some methods support variable step size, in which case the second parameter is renamed `dt_or_t` and can receive either a constant step size or an array of values to denote sample locations. Some methods support multidimensional data, in which case there is an `axis` argument to control the dimension differentiated along.
95
+ where `x` is data, `dt` is a step size, and various keyword arguments control the behavior. Some methods support variable step size, in which case the second parameter is renamed `dt_or_t` and can receive either a constant step size or an array of values to denote sample locations. All major methods support multidimensional data, so look for an `axis` argument to control the dimension differentiated along.
93
96
 
94
97
  You can set the hyperparameters:
95
98
  ```python
@@ -24,7 +24,7 @@ Python methods for numerical differentiation of noisy data, including multi-obje
24
24
 
25
25
  ## Introduction
26
26
 
27
- PyNumDiff is a Python package that implements various methods for computing numerical derivatives of noisy data, which can be a critical step in developing dynamic models or designing control. There are seven different families of methods implemented in this repository:
27
+ PyNumDiff is a Python package that implements many methods for computing numerical derivatives and smooth estimates of noisy data, which can be a critical step in developing dynamic models or designing control. There are seven different families of methods implemented in this repository:
28
28
 
29
29
  1. prefiltering followed by finite difference calculation
30
30
  2. iterated finite differencing
@@ -34,9 +34,11 @@ PyNumDiff is a Python package that implements various methods for computing nume
34
34
  6. generalized Kalman smoothing
35
35
  7. local approximation with linear model
36
36
 
37
- For a full list, explore modules in the [Sphinx documentation](https://pynumdiff.readthedocs.io/master/), or read section 7 of our [Taxonomy Paper](https://arxiv.org/abs/2512.09090).
37
+ All are ultimately smoothing with similar runtime and accuracy, but some have situational advantages over others: For example, `robustdiff` is specialized to handle outliers; `splinediff`, `polydiff`, `rtsdiff`, and `robustdiff` can handle missing data; `splinediff`, `polydiff`, `rbfdiff`, `rtsdiff`, and `robustdiff` can handle irregularly-spaced data; and `rtsdiff` can handle inputs on a wrapped domain, like angles. All methods can accept blocks of multidimensional data, differentiating all vectors along the dimension given by the `axis` parameter.
38
38
 
39
- Most of these methods have multiple parameters, so we take a principled approach and propose a multi-objective optimization framework for choosing parameters that minimize a loss function to balance the faithfulness and smoothness of the derivative estimate. For more details, refer to [this paper](https://doi.org/10.1109/ACCESS.2020.3034077).
39
+ For a full list and comparison, see section 7 of our [Taxonomy Paper](https://arxiv.org/abs/2512.09090) and explore modules in the [Sphinx documentation](https://pynumdiff.readthedocs.io/master/).
40
+
41
+ All methods have hyperparameters, so we take a principled approach and propose a multi-objective optimization framework for choosing settings that minimize a loss function to balance the faithfulness and smoothness of the derivative estimate. For more details, refer to [this paper](https://doi.org/10.1109/ACCESS.2020.3034077).
40
42
 
41
43
  ## Installing
42
44
 
@@ -52,7 +54,7 @@ For more details, read our [Sphinx documentation](https://pynumdiff.readthedocs.
52
54
  somethingdiff(x, dt, **kwargs)
53
55
  ```
54
56
 
55
- where `x` is data, `dt` is a step size, and various keyword arguments control the behavior. Some methods support variable step size, in which case the second parameter is renamed `dt_or_t` and can receive either a constant step size or an array of values to denote sample locations. Some methods support multidimensional data, in which case there is an `axis` argument to control the dimension differentiated along.
57
+ where `x` is data, `dt` is a step size, and various keyword arguments control the behavior. Some methods support variable step size, in which case the second parameter is renamed `dt_or_t` and can receive either a constant step size or an array of values to denote sample locations. All major methods support multidimensional data, so look for an `axis` argument to control the dimension differentiated along.
56
58
 
57
59
  You can set the hyperparameters:
58
60
  ```python