Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rossant/awesome-scientific-python

A curated list of awesome scientific Python resources
https://github.com/rossant/awesome-scientific-python

List: awesome-scientific-python

awesome awesome-list data-analysis data-science data-visualization list python science scientific-computing scientific-visualization

Last synced: 22 days ago
JSON representation

A curated list of awesome scientific Python resources

Awesome Lists containing this project

README

        

# Awesome Scientific Python [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)

A curated list of awesome scientific Python resources.

# Contents

* [Contents](#contents)
* [Libraries](#libraries)
* [Core libraries](#core-libraries)
* [IPython/Jupyter](#ipythonjupyter)
* [NumPy](#numpy)
* [SciPy](#scipy)
* [pandas](#pandas)
* [scikit-learn](#scikit-learn)
* [matplotlib](#matplotlib)
* [SymPy](#sympy)
* [Other scientific libraries](#other-scientific-libraries)
* [Data visualization](#data-visualization)
* [3D visualization](#3d-visualization)
* [Image processing](#image-processing)
* [Graphs](#graphs)
* [Neural networks](#neural-networks)
* [Statistics](#statistics)
* [Compilation](#compilation)
* [Parallel computing](#parallel-computing)
* [GPU computing](#gpu-computing)
* [Domain-specific libraries](#domain-specific-libraries)
* [Geospatial data](#geospatial-data)
* [Astrophysics](#astrophysics)
* [Molecular simulations](#molecular-simulations)
* [Bioinformatics](#bioinformatics)
* [Neuroimaging](#neuroimaging)
* [Neuroscience](#neuroscience)
* [Mathematics](#mathematics)
* [Lists of libraries](#lists-of-libraries)
* [Books](#books)
* [Courses](#courses)
* [Tutorials](#tutorials)
* [Videos](#videos)
* [License](#license)

# Libraries

## Core libraries

### IPython/Jupyter

*Effective interactive computing, data analysis, and visualization.*

* [IPython](http://ipython.org/) - Interactive Python computing in the terminal.
* [Jupyter](http://jupyter.org/) - Open interactive computing in many programming languages.
* [Jupyter Notebook](http://jupyter.org/install) - Web-based environment for interactive computing.
* [JupyterLab](https://jupyterlab.readthedocs.io/en/stable/) - Next-generation web-based interactive programming and computing environment.

### NumPy

*Multidimensional array computing.*

* [NumPy](http://www.numpy.org/)
* [NumPy documentation](https://docs.scipy.org/doc/numpy/reference/routines.html)
* [NumPy tutorial](https://docs.scipy.org/doc/numpy/user/quickstart.html)
* [NumPy for MATLAB users](https://docs.scipy.org/doc/numpy/user/numpy-for-matlab-users.html)

### SciPy

*Numerical computing library.*

* [SciPy](https://scipy.org/)
* [Getting started with SciPy](https://scipy.org/getting-started.html)
* [SciPy documentation](https://docs.scipy.org/doc/scipy/reference/)

### pandas

*Data analysis library.*

* [pandas](https://pandas.pydata.org/)
* [pandas documentation](http://pandas.pydata.org/pandas-docs/stable/)

### scikit-learn

*Machine learning library.*

* [scikit-learn](http://scikit-learn.org/stable/)
* [scikit-learn tutorial](http://scikit-learn.org/stable/tutorial/basic/tutorial.html)
* [scikit-learn user guide](http://scikit-learn.org/stable/user_guide.html)

### matplotlib

*Data visualization and graphics library.*

* [matplotlib](https://matplotlib.org/)
* [matplotlib gallery](https://matplotlib.org/gallery/index.html)
* [matplotlib tutorials](https://matplotlib.org/tutorials/index.html)
* [matplotlib documentation](https://matplotlib.org/contents.html)

### SymPy

*Symbolic computing library.*

* [SymPy](https://www.sympy.org/)
* [SymPy tutorial](http://docs.sympy.org/latest/tutorial/index.html)
* [SymPy documentation](http://docs.sympy.org/latest/index.html)

## Other scientific libraries

### Data visualization

* [Bokeh](https://bokeh.pydata.org/en/latest/) - Interactive visualization for the web.
* [Altair](https://altair-viz.github.io/) - Declarative visualization in Python.
* [seaborn](https://seaborn.pydata.org/) - Statistical data visualization.
* [bqplot](https://github.com/bloomberg/bqplot) - 2D interactive visualization in Jupyter.
* [plotnine](https://plotnine.readthedocs.io/) - Grammar of Graphics implementation in Python based on ggplot2.
* [plotly](https://plot.ly/python/) - Interactive data visualization on the web.
* [HoloViews](http://holoviews.org/) - Data visualization library.
* [Napari](https://github.com/napari/napari) - Multi-dimensional image viewer for python.

### 3D visualization

* [ipyvolume](https://ipyvolume.readthedocs.io/en/latest/) - 3D visualization with Jupyter.
* [VisPy](http://vispy.org/) - Interactive GPU-accelerated visualization.
* [Glumpy](http://glumpy.github.io/) - Scientific visualization in modern OpenGL.
* [vedo](https://vedo.embl.es/) - Scientific analysis and visualization based on VTK.
* [PyVista](https://docs.pyvista.org/) - 3D plotting and mesh analysis through a streamlined interface for the Visualization Toolkit (VTK).
* [Datoviz](https://datoviz.org/) - 2D/3D high-performance GPU visualization with Vulkan.

### Image processing

* [scikit-image](https://scikit-image.org/) - Image processing in Python.
* [Pillow](https://pillow.readthedocs.io/en/latest/) - Python Imaging Library (PIL) fork in Python.
* [OpenCV](https://opencv.org/) - Computer vision library.

### Graphs

* [NetworkX](https://networkx.github.io/) - Graph and network structures and algorithms.
* [Graph-tool](https://graph-tool.skewed.de/) - Manipulation and statistical analysis of graphs.

### Neural networks

* [PyTorch](https://pytorch.org/) - Neural networks and deep learning in Python.
* [Keras](https://keras.io/) - Python deep learning library.
* [TensorFlow](https://www.tensorflow.org/) - Machine learning framework.
* [Caffe](http://caffe.berkeleyvision.org/) - Deep learning framework.

### Statistics

* [PyMC3](http://docs.pymc.io/) - Bayesian statistical modeling.
* [statsmodels](http://www.statsmodels.org/) - Statistical models.
* [emcee](http://dfm.io/emcee/) - ensemble sampler for markov chain monte carlo.

### Compilation

* [Numba](https://numba.pydata.org/) - JIT compilation of Python code
* [Cython](http://cython.org/) - Combine C and Python

### Parallel computing

* [ipyparallel](https://ipyparallel.readthedocs.io/en/latest/) - Parallel computing with IPython
* [Dask](https://github.com/dask/dask) - Parallel computing with task scheduling.

### GPU computing

* [CuPy](https://cupy.chainer.org/) - NumPy-like library with CUDA.
* [PyCUDA](https://developer.nvidia.com/pycuda) - Use CUDA with Python.

## Domain-specific libraries

### Geospatial data

* [GeoPandas](https://geopandas.readthedocs.io/en/latest/) - pandas for geospatial data.
* [Shapely](https://github.com/Toblerity/Shapely) - Manipulation and analysis of geometric objects.
* [Folium](http://python-visualization.github.io/folium/) - Interactive maps in Python with leaflet.js.

### Astrophysics

* [Astropy](http://www.astropy.org/) - Core package for astronomy.
* [AstroML](http://www.astroml.org/) - Machine learning for astronomy

### Molecular simulations

* [MGLTools](http://mgltools.scripps.edu/) - Visualization and analysis of molecular structures.
* [MDAnalysis](https://www.mdanalysis.org/) - Molecular dynamics simulations
* [pysimm](https://pysimm.org/) - Molecular simulations
* [PyMOL](https://pymol.org/2/) - Molecular visualization
* [Molecular Modeling Toolkit](https://bitbucket.org/khinsen/mmtk)

### Bioinformatics

* [Biopython](https://biopython.org/) - Biological computations.
* [PyBioMed](https://pybiomed.readthedocs.io/en/latest/index.html) - Descriptors of biological molecules.
* [khmer](https://github.com/dib-lab/khmer) - k-mer counting, filtering, and graph traversal.

### Neuroimaging

* [NiBabel](https://github.com/nipy/nibabel) - Neuro-imaging file formats.
* [Nilearn](https://nilearn.github.io/) - Machine learning for neuro-imaging.
* [NiTime](http://nipy.org/nitime/) - Time series.
* [MNE](https://github.com/mne-tools/mne-python) - MEG and EEG.
* [DIPY](https://github.com/nipy/dipy) - Diffusion MR imaging.
* [Expyriment](https://github.com/expyriment/expyriment) - Behavioral and neuroimaging experiments.

### Neuroscience

* [Brian2](https://github.com/brian-team/brian2) - Simulations of spiking neural networks.
* [Spyking Circus](https://spyking-circus.readthedocs.io/en/latest/) - Spike sorting on large extracellular recordings.
* [Klusta](https://github.com/kwikteam/klusta) - Spike detection and clustering-based spike sorting.
* [phy](https://phy.readthedocs.io/en/latest/) - Manual spike sorting for high-density multielectrode arrays.
* [NeuroTools](https://pythonhosted.org/NeuroTools/) - Tools for neural simulations.
* [Neo](https://neo.readthedocs.io) - File formats for neuroscience.
* [PsychoPy](http://psychopy.org/) - Psychology and neuroscience experiments.
* [Nengo](https://github.com/nengo/nengo) - Simulation of large-scale brain models
* [PyGaze](http://www.pygaze.org/) - Eye tracking.

### Mathematics

* [Sage](http://www.sagemath.org) - Mathematics software system.
* [mpmath](http://mpmath.org/) - arithmetic with arbitrary precision.

## Lists of libraries

* [Python Numeric and Scientific](https://wiki.python.org/moin/NumericAndScientific) - on python.org.
* [Scientific Computing Tools for Python](https://www.scipy.org/about.html) - on scipy.org.
* [Useful libraries for data science in Python](https://github.com/rasbt/pattern_classification/blob/master/resources/python_data_libraries.md) - by Sebastian Raschka.
* [Python for Scientific Audio](https://github.com/faroit/awesome-python-scientific-audio) - by Fabian-Robert Stöter.

# Books

* [Python Data Science Handbook](https://jakevdp.github.io/PythonDataScienceHandbook/) - Jake VanderPlas, O'Reilly, 2016, 541 pages.
* [Python for Data Analysis](http://shop.oreilly.com/product/0636920050896.do) - William McKinney, O'Reilly, 2017, 544 pages (second edition).
* [Learning IPython for Interactive Computing and Data Analysis](https://www.packtpub.com/big-data-and-business-intelligence/learning-ipython-interactive-computing-and-data-visualization-sec), Cyrille Rossant, Packt Publishing, 2015, 200 pages (second edition).
* [IPython Interactive Computing and Visualization Cookbook](https://www.packtpub.com/big-data-and-business-intelligence/ipython-interactive-computing-and-visualization-cookbook-second-e), Cyrille Rossant, Packt Publishing, 2018, 548 pages (second edition).
* [A Primer on Scientific Programming with Python](https://www.springer.com/gp/book/9783642549595) - Hans Petter Langtangen, Springer, 2014, 872 pages.
* [Exploring Data with Python](https://www.manning.com/books/exploring-data-with-python) - Naomi Ceder, Manning 2018, 110 pages.
* [Deep Learning with Python](https://www.manning.com/books/deep-learning-with-python) - François Chollet, Manning, 2017, 384 pages.
* [Python Machine Learning](https://www.packtpub.com/big-data-and-business-intelligence/python-machine-learning-second-edition) - Sebastian Raschka & Vahid Mirjalili, Packt Publishing, 2017, 622 pages (second edition).

# Courses

* [Stat 159/259, Reproducible and Collaborative Data Science](https://berkeley-stat159-f17.github.io/stat159-f17/index.html) - Fernando Perez, Berkeley University, 2017.
* [CME 193, Introduction to Scientific Python](https://web.stanford.edu/~schmit/cme193/) - Stanford University, Sven Schmit, 2015.
* [Using Python for Research](https://online-learning.harvard.edu/course/using-python-research) - Jukka-Pekka Onnela, Harvard University Online Learning.
* [Introduction to Data Analytics and Machine Learning with Python](https://www.city.ac.uk/courses/short-courses/introduction-to-data-analysis-and-machine-learning-with-python) - University of London.
* [PHY 546: Python for Scientific Computing](http://bender.astro.sunysb.edu/classes/python-science/) - Stony Brook University, Michael Zingale, 2018.
* [Python for Data Analysis](https://github.com/cuttlefishh/python-for-data-analysis) - Luke Thompson, NOAA.
* [Coursera Data Science with Python](https://www.coursera.org/specializations/data-science-python) - University of Michigan.
* [edX Python for Data Science](https://www.edx.org/course/python-for-data-science) - UC San Diego, Ilkay Altintas, Leo Porter.
* [edX Foundations of Data Science: Computational Thinking with Python](https://www.edx.org/course/foundations-data-science-computational-uc-berkeleyx-data8-1x) - UC Berkeley, Ani Adhikari, John DeNero, David Wagner.
* [Python Course](https://www.python-course.eu/index.php) - Bernd Klein.
* [Intro to Python for Data Science](https://www.datacamp.com/courses/intro-to-python-for-data-science) - DataCamp, Filip Schouwenaars.
* [Schools using Python](https://wiki.python.org/moin/SchoolsUsingPython) - on python.org.
* [Python NumPy for Data Science](https://programiz.pro/course/python-numpy-for-data-science) - by Programiz PRO.

# Tutorials

* [SciPy Lecture Notes](https://www.scipy-lectures.org/)
* [Lectures on scientific computing with Python](https://github.com/jrjohansson/scientific-python-lectures) - Robert Johansson.
* [NumPy Illustrated - The Visual Guide to NumPy](https://betterprogramming.pub/numpy-illustrated-the-visual-guide-to-numpy-3b1d4976de1d?sk=57b908a77aa44075a49293fa1631dd9b) - Lev Maximov.
* [Python NumPy tutorial](http://cs231n.github.io/python-numpy-tutorial/) - Justin Johnson, Stanford University.
* [Real Python Python Data Science Tutorials](https://realpython.com/tutorials/data-science/)
* [A gallery of interesting Jupyter Notebooks](https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks)
* [List of Python Data Science Tutorials](https://github.com/ujjwalkarn/DataSciencePython) - Ujjwal Karn.
* [pyOpenSci Python Package Guide](https://www.pyopensci.org/python-package-guide/)

# Videos

* [SciPy 2024: Scientific Computing with Python Conference](https://youtube.com/playlist?list=PL1PbeFStIOoO7rDLs431H-rn0h24Wr80S) - 60 YouTube videos.
* [SciPy 2023: Scientific Computing with Python Conference](https://youtube.com/playlist?list=PL1PbeFStIOoOd01KhBeba-byU5E5dJ716) - 59 YouTube videos.
* [SciPy 2022: Scientific Computing with Python Conference](https://youtube.com/playlist?list=PLYx7XA2nY5Ge3LsWy500pi5bdHEiAdQB5) - 10 YouTube videos.
* [SciPy 2021: Scientific Computing with Python Conference](https://www.youtube.com/playlist?list=PLYx7XA2nY5GesARqNMImG3NnX3_bWq-lT) - 61 YouTube videos.
* [SciPy 2019: Scientific Computing with Python Conference](https://www.youtube.com/playlist?list=PLYx7XA2nY5GcDQblpQ_M1V3PQPoLWiDAC) - 102 YouTube videos.
* [SciPy 2018: Scientific Computing with Python Conference](https://www.youtube.com/playlist?list=PLYx7XA2nY5Gd-tNhm79CNMe_qvi35PgUR) - 97 YouTube videos.
* [SciPy 2017: Scientific Computing with Python Conference](https://www.youtube.com/playlist?list=PLYx7XA2nY5GfdAFycPLBdUDOUtdQIVoMf) - 91 YouTube videos.
* [SciPy 2016: Scientific Computing with Python Conference](https://www.youtube.com/playlist?list=PLYx7XA2nY5Gf37zYZMw6OqGFRPjB1jCy6) - 92 YouTube videos.
* [SciPy 2015: Scientific Computing with Python Conference](https://www.youtube.com/playlist?list=PLYx7XA2nY5Gcpabmu61kKcToLz0FapmHu) - 116 YouTube videos.
* [SciPy 2014: Scientific Computing with Python Conference](https://www.youtube.com/playlist?list=PLYx7XA2nY5GfuhCvStxgbynFNrxr3VFog) - 121 YouTube videos.
* [SciPy 2013: Scientific Computing with Python Conference](https://www.youtube.com/playlist?list=PLYx7XA2nY5GeTWcUQTbXVdllyp-Ie3r-y) - 33 YouTube videos.

# License

[![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](http://creativecommons.org/publicdomain/zero/1.0/)

To the extent possible under law, [Cyrille Rossant](http://cyrille.rossant.net) has waived all copyright and related or neighboring rights to this work.