lintsampler: Easy random sampling via linear interpolation

Aneesh P. Naik*, Michael S. Petersen

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

Abstract / Description of output

lintsampler provides a Python implementation of a technique we term ‘linear interpolant
sampling’: an algorithm to efficiently draw pseudo-random samples from an arbitrary probability density function (PDF). First, the PDF is evaluated on a grid-like structure. Then, it is assumed that the PDF can be approximated between grid vertices by the (multidimensional) linear interpolant. With this assumption, random samples can be efficiently drawn via inverse
transform sampling (Devroye, 1986). lintsampler is primarily written with numpy (Harris et al., 2020), drawing some additional functionality from scipy (Virtanen et al., 2020). Under the most basic usage of lintsampler, the user provides a Python function defining the target PDF and some parameters describing a grid-like structure to the LintSampler class, and is then able to draw samples via the sample method. Additionally, there is functionality for the user to set the random seed, employ quasi-Monte Carlo sampling, or sample within a premade grid (DensityGrid) or tree (DensityTree) structure.
Original languageEnglish
Article number6906
Pages (from-to)1-5
Number of pages5
JournalThe Journal of Open Source Software
Volume9
Issue number102
DOIs
Publication statusPublished - 1 Oct 2024

Fingerprint

Dive into the research topics of 'lintsampler: Easy random sampling via linear interpolation'. Together they form a unique fingerprint.

Cite this