  This paper introduces CUQIpy, a versatile open-source Python package for
computational uncertainty quantification (UQ) in inverse problems, presented as
Part I of a two-part series. CUQIpy employs a Bayesian framework, integrating
prior knowledge with observed data to produce posterior probability
distributions that characterize the uncertainty in computed solutions to
inverse problems. The package offers a high-level modeling framework with
concise syntax, allowing users to easily specify their inverse problems, prior
information, and statistical assumptions. CUQIpy supports a range of efficient
sampling strategies and is designed to handle large-scale problems. Notably,
the automatic sampler selection feature analyzes the problem structure and
chooses a suitable sampler without user intervention, streamlining the process.
With a selection of probability distributions, test problems, computational
methods, and visualization tools, CUQIpy serves as a powerful, flexible, and
adaptable tool for UQ in a wide selection of inverse problems. Part II of the
series focuses on the use of CUQIpy for UQ in inverse problems with partial
differential equations (PDEs).
