Skip to main content

Python interface to CmdStan

Project description

CmdStanPy

codecov

CmdStanPy is a lightweight pure-Python interface to CmdStan which provides access to the Stan compiler and all inference algorithms. It supports both development and production workflows. Because model development and testing may require many iterations, the defaults favor development mode and therefore output files are stored on a temporary filesystem. Non-default options allow all aspects of a run to be specified so that scripts can be used to distributed analysis jobs across nodes and machines.

CmdStanPy is distributed via PyPi: https://pypi.org/project/cmdstanpy/

or Conda Forge: https://anaconda.org/conda-forge/cmdstanpy

Goals

  • Clean interface to Stan services so that CmdStanPy can keep up with Stan releases.

  • Provide access to all CmdStan inference methods.

  • Easy to install,

    • minimal Python library dependencies: numpy, pandas
    • Python code doesn't interface directly with c++, only calls compiled executables
  • Modular - CmdStanPy produces a MCMC sample (or point estimate) from the posterior; other packages do analysis and visualization.

  • Low memory overhead - by default, minimal memory used above that required by CmdStanPy; objects run CmdStan programs and track CmdStan input and output files.

Source Repository

CmdStanPy and CmdStan are available from GitHub: https://github.com/stan-dev/cmdstanpy and https://github.com/stan-dev/cmdstan

Docs

The latest release documentation is hosted on https://mc-stan.org/cmdstanpy, older release versions are available from readthedocs: https://cmdstanpy.readthedocs.io

Licensing

The CmdStanPy, CmdStan, and the core Stan C++ code are licensed under new BSD.

Example

import os
from cmdstanpy import cmdstan_path, CmdStanModel

# specify locations of Stan program file and data
stan_file = os.path.join(cmdstan_path(), 'examples', 'bernoulli', 'bernoulli.stan')
data_file = os.path.join(cmdstan_path(), 'examples', 'bernoulli', 'bernoulli.data.json')

# instantiate a model; compiles the Stan program by default
model = CmdStanModel(stan_file=stan_file)

# obtain a posterior sample from the model conditioned on the data
fit = model.sample(chains=4, data=data_file)

# summarize the results (wraps CmdStan `bin/stansummary`):
fit.summary()

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

cmdstanpy-1.2.4.tar.gz (114.1 kB view details)

Uploaded Source

Built Distribution

cmdstanpy-1.2.4-py3-none-any.whl (94.5 kB view details)

Uploaded Python 3

File details

Details for the file cmdstanpy-1.2.4.tar.gz.

File metadata

  • Download URL: cmdstanpy-1.2.4.tar.gz
  • Upload date:
  • Size: 114.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for cmdstanpy-1.2.4.tar.gz
Algorithm Hash digest
SHA256 ad586be0b9f4c654ecbdc4af4541f4d282f99175956cda88cc5eb873719356cc
MD5 74d31cdf7cc225089ebf3b4817852fe2
BLAKE2b-256 26cc42b48308bc95c6387d81da7b96aaa6c0030b6a1bc7fbcd32de9062d5ab5f

See more details on using hashes here.

File details

Details for the file cmdstanpy-1.2.4-py3-none-any.whl.

File metadata

  • Download URL: cmdstanpy-1.2.4-py3-none-any.whl
  • Upload date:
  • Size: 94.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.9.19

File hashes

Hashes for cmdstanpy-1.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 ad60f8ca17050216ab7140e13aa493628d88af8a689f17253a5ad294a9826c78
MD5 e578735ab2b1ca04e53c67b46041e26c
BLAKE2b-256 5d126522f3de83ca690aa52f4b8c88a1e203abb1e2d75c31669dc004949143cd

See more details on using hashes here.

Supported by

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