Awesome Scientific Python Awesome

A curated list of awesome scientific Python resources.

Contents

Libraries

Core libraries

IPython/Jupyter

Effective interactive computing, data analysis, and visualization.

  • IPython - Interactive Python computing in the terminal.
  • Jupyter - Open interactive computing in many programming languages.
  • Jupyter Notebook - Web-based environment for interactive computing.
  • JupyterLab - Next-generation web-based interactive programming and computing environment.

NumPy

Multidimensional array computing.

SciPy

Numerical computing library.

pandas

Data analysis library.

scikit-learn

Machine learning library.

matplotlib

Data visualization and graphics library.

SymPy

Symbolic computing library.

Other scientific libraries

Data visualization

  • Bokeh - Interactive visualization for the web.
  • Altair - Declarative visualization in Python.
  • seaborn - Statistical data visualization.
  • bqplot - 2D interactive visualization in Jupyter.
  • ggplot2 - Grammar of Graphics implementation in Python.
  • plotly - Interactive data visualization on the web.
  • HoloViews - Data visualization library.

3D visualization

  • ipyvolume - 3D visualization with Jupyter.
  • VisPy - Interactive GPU-accelerated visualization.
  • Glumpy - Scientific visualization in modern OpenGL.

Image processing

  • scikit-image - Image processing in Python.
  • Pillow - Python Imaging Library (PIL) fork in Python.
  • OpenCV - Computer vision library.

Graphs

  • NetworkX - Graph and network structures and algorithms.
  • Graph-tool - Manipulation and statistical analysis of graphs.

Neural networks

  • PyTorch - Neural networks and deep learning in Python.
  • Keras - Python deep learning library.
  • TensorFlow - Machine learning framework.
  • Caffe - Deep learning framework.

Statistics

  • PyMC3 - Bayesian statistical modeling.
  • statsmodels - Statistical models.
  • emcee - ensemble sampler for markov chain monte carlo.

Compilation

  • Numba - JIT compilation of Python code
  • Cython - Combine C and Python

Parallel computing

  • ipyparallel - Parallel computing with IPython
  • Dask - Parallel computing with task scheduling.

GPU computing

  • CuPy - NumPy-like library with CUDA.
  • PyCUDA - Use CUDA with Python.

Domain-specific libraries

Geospatial data

  • GeoPandas - pandas for geospatial data.
  • Shapely - Manipulation and analysis of geometric objects.
  • Folium - Interactive maps in Python with leaflet.js.

Astrophysics

  • Astropy - Core package for astronomy.
  • AstroML - Machine learning for astronomy

Molecular simulations

Bioinformatics

  • Biopython - Biological computations.
  • PyBioMed - Descriptors of biological molecules.
  • khmer - k-mer counting, filtering, and graph traversal.

Neuroimaging

  • NiBabel - Neuro-imaging file formats.
  • Nilearn - Machine learning for neuro-imaging.
  • NiTime - Time series.
  • MNE - MEG and EEG.
  • DIPY - Diffusion MR imaging.
  • Expyriment - Behavioral and neuroimaging experiments.

Neuroscience

  • Brian2 - Simulations of spiking neural networks.
  • Spyking Circus - Spike sorting on large extracellular recordings.
  • Klusta - Spike detection and clustering-based spike sorting.
  • phy - Manual spike sorting for high-density multielectrode arrays.
  • NeuroTools - Tools for neural simulations.
  • Neo - File formats for neuroscience.
  • PsychoPy - Psychology and neuroscience experiments.
  • Nengo - Simulation of large-scale brain models
  • PyGaze - Eye tracking.

Mathematics

  • Sage - Mathematics software system.
  • mpmath - arithmetic with arbitrary precision.

Lists of libraries

Books

Courses

Tutorials

Videos

License

CC0

To the extent possible under law, Cyrille Rossant has waived all copyright and related or neighboring rights to this work.