Skip to content

Software

Matti Morzfeld edited this page Jan 11, 2017 · 7 revisions

Software for Bayesian data assimilation and Bayesian inverse problems

Useful python environment manager

Continuum Anaconda is a great resource to manage your python environment. It has prebuilt binaries so you can easily install things like numpy and scipy without having to track down libraries like ATLAS, BLAS, or LAPACK. Most of the packages below can be installed via conda install [package] e.g. conda install numpy. To see everything conda is capable of checkout out http://conda.pydata.org/docs/using/index.html.

Useful python packages

General

  • numpy: most of the standard arrays etc you're used to with matlab
  • scipy: some extra, useful functions like more linear algebra, optimization, curve fitting etc.
  • pandas: really useful for labeling numpy arrays especially when handling time-series data
  • matplotlib: the defacto python plotting library
  • seaborn: makes matplotlib plots pretty and add some statistical plotting types
  • scikits: Here are a number of different packages that integrate with numpy/scipy and provide some special functionality like scikit-cuda for working with GPU arrays and scikit-learn for machine learning

Speeding up python

  • numba: easy to use JIT compiler with python syntax
  • cython: write C extensions and call them from python
  • f2py: call fortran from python
  • mpi4py: MPI bindings for python
  • pycuda: use numpy arrays on a GPU for a huge speed increase

Machine Learning

Stats

Monte Carlo

  • emcee: the MCMC hammer: affine invariant importance sampler - python package

Solvers

  • fenic: finite element differential equation solver

Reproducible research

  • sumatra: python package that keeps track of simulation code, runs and results. It can be used from the command line so your code does not need to be python.

Useful Matlab packages

  • emcee: the MCMC hammer: affine invariant importance sampler - matlab package

Latex templates

  • Andrew
Clone this wiki locally