  Computing derivatives of noisy measurement data is ubiquitous in the
physical, engineering, and biological sciences, and it is often a critical step
in developing dynamic models or designing control. Unfortunately, the
mathematical formulation of numerical differentiation is typically ill-posed,
and researchers often resort to an \textit{ad hoc} process for choosing one of
many computational methods and its parameters. In this work, 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. Our framework has three significant
advantages. First, the task of selecting multiple parameters is reduced to
choosing a single hyper-parameter. Second, where ground-truth data is unknown,
we provide a heuristic for automatically selecting this hyper-parameter based
on the power spectrum and temporal resolution of the data. Third, the optimal
value of the hyper-parameter is consistent across different differentiation
methods, thus our approach unifies vastly different numerical differentiation
methods and facilitates unbiased comparison of their results. Finally, we
provide an extensive open-source Python library \texttt{pynumdiff} to
facilitate easy application to diverse datasets
(https://github.com/florisvb/PyNumDiff).
