Astropy is a collection of packages designed for use in astronomy.
The core Astropy package contains functionality aimed at professional astronomers and astrophysicists, but may be useful to anyone developing software for astronomy.
Biopython is a collection of non-commercial Python tools for computational biology and bioinformatics.
It contains classes to represent biological sequences and sequence annotations. The library can also read and write to a variety of file formats.
Bokeh is a Python interactive visualization library that targets modern web browsers for presentation.
It can help anyone who wishes to quickly and easily create interactive plots, dashboards, and data applications.
The purpose of Bokeh is to provide elegant, concise construction of novel graphics in the style of D3.js, but also deliver this capability with high-performance interactivity over very large or streaming datasets.
Cubes is a light-weight Python framework and set of tools for the development of reporting and analytical applications, Online Analytical Processing (OLAP), multidimensional analysis, and browsing of aggregated data.
Dask is a flexible parallel computing library for analytic computing, composed of two components:
DEAP is an evolutionary computation framework for rapid prototyping and testing of ideas.
It incorporates the data structures and tools required to implement the most common evolutionary computation techniques, such as genetic algorithms, genetic programming, evolution strategies, particle swarm optimization, differential evolution, and estimation of distribution algorithms.
DataMelt, or DMelt, is a software for numeric computation, statistics, analysis of large data volumes (Big Data), and scientific visualization.
It can be used with several scripting languages, including Python/Jython, BeanShell, Groovy, Ruby, and Java.
The library has numerous applications, such as natural sciences, engineering, modeling, and analysis of financial markets.
Graph-tool is a module for the manipulation and statistical analysis of graphs.
Matplotlib is a Python 2D plotting library that produces publication-quality figures in a variety of hard-copy formats and interactive cross-platform environments.
It allows you to generate plots, histograms, power spectra, bar charts, error charts, scatter plots, and more.
It provides a wide range of machine learning methods for supervised and unsupervised problems, and is aimed at finding a reasonable compromise between modularity, maintainability, reproducibility, usability, and efficiency.
NetworkX is a library for studying graphs which helps you create, manipulate, and study the structure, dynamics, and functions of complex networks.
Nilearn is a Python module for fast and easy statistical learning on neuroimaging data.
This library makes it easy to use many advanced machine learning, pattern recognition, and multivariate statistical techniques on neuroimaging data for applications such as MVPA (Multi-Voxel Pattern Analysis), decoding, predictive modelling, functional connectivity, brain parcellations, or connectomes.
NumPy is the fundamental package for scientific computing with Python, adding support for large, multidimensional arrays and matrices, along with a large library of high-level mathematical functions to operate on these arrays.
Pandas is a library for data manipulation and analysis, providing data structures and operations for manipulating numerical tables and time series.
Pipenv is a tool designed to bring the best of all packaging worlds to the Python world.
It automatically creates and manages a virtualenv for your projects, along with adding or removing packages from your Pipfile as you install or uninstall packages.
Pipenv is primarily meant to provide users and developers of applications with an easy method to set up a working environment.
PsychoPy is a package for the generation of experiments for neuroscience and experimental psychology.
It is designed to allow the presentation of stimuli and collection of data for a wide range of neuroscience, psychology, and psychophysical experiments.
PySpark is the Python API for Apache Spark.
Spark is a distributed computing framework for big data processing. It serves as a unified analytics engine, built with speed, ease of use, and generality in mind.
Spark offers modules for streaming, machine learning, and graph processing. It’s also completely open-source.
Weka is a suite of machine learning software written in Java, developed at the University of Waikato, New Zealand.
It contains a collection of visualization tools and algorithms for data analysis and predictive modeling, together with graphical user interfaces for easy access to these functions.
The python-weka-wrapper package makes it easy to run Weka algorithms and filters from within Python.
PyTorch is a deep learning framework for fast, flexible experimentation.
This package provides two high-level features: Tensor computation with strong GPU acceleration and deep neural networks built on a tape-based autodiff system.
It can be used either as a replacement for numpy to use the power of GPUs, or a deep learning research platform that provides maximum flexibility and speed.
SQLAlchemy is an open-source SQL toolkit and Object-Relational Mapper that gives application developers the full power and flexibility of SQL.
It provides a full suite of well-known enterprise-level persistence patterns, designed for efficient and high-performing database access, adapted into a simple and Pythonic domain language.
The main goal of the library is to change the way we approach databases and SQL.
SageMath is a mathematical software system with features covering multiple aspects of mathematics, including algebra, combinatorics, numerical mathematics, number theory, and calculus.
It uses Python to support procedural, functional, and object-oriented constructs.
ScientificPython is a collection of modules for scientific computing.
It contains support for geometry, mathematical functions, statistics, physical units, IO, visualization, and parallelization.
Scikit-image is an image processing library.
It includes algorithms for segmentation, geometric transformations, color space manipulation, analysis, filtering, morphology, feature detection, and more.
Scikit-learn is a machine learning library.
It features various classification, regression, and clustering algorithms, including support vector machines, random forests, gradient boosting, k-means, and DBSCAN.
The library is designed to interoperate with the Python numerical and scientific libraries NumPy and SciPy.
SciPy is a library used by scientists, analysts, and engineers doing scientific computing and technical computing.
It contains modules for optimization, linear algebra, integration, interpolation, special functions, FFT, signal and image processing, ODE solvers, and other tasks common in science and engineering.
SCOOP is a Python module for distributing concurrent parallel tasks on various environments, from heterogeneous grids of workstations to supercomputers.
SunPy is a data analysis environment specializing in providing the software necessary to analyze solar and heliospheric data in Python.
SymPy is a library for symbolic computation, offering features ranging from basic symbolic arithmetic to calculus, algebra, discrete mathematics, and quantum physics.
It provides computer algebra capabilities either as a standalone application, a library to other applications, or live on the web.
TensorFlow is an open-source software library for machine learning across a range of tasks, developed by Google to meet their needs for systems capable of building and training neural networks to detect and decipher patterns and correlations, analogous to the learning and reasoning employed by humans.
It is currently used for both research and production at Google products, often replacing the role of its closed-source predecessor, DistBelief.
Theano is a numerical computation Python library, allowing you to define, optimize, and evaluate mathematical expressions involving multidimensional arrays efficiently.
TomoPy is an open-source Python toolbox for performing tomographic data processing and image reconstruction tasks.
It offers a collaborative framework for the analysis of synchrotron tomographic data, with the goal to unify the efforts of different facilities and beamlines performing similar tasks.
Veusz is a scientific plotting and graphing package designed to produce publication-quality plots in popular vector formats, including PDF, PostScript, and SVG.
Beautiful Soup is a powerful tool that can save you hours of work. The library makes it easy to scrape information from web pages. It pulls data out of HTML and XML files and works with your favorite parser to provide idiomatic ways of navigating, searching, and modifying the parse tree.
Even though Scrapy was originally designed for web scraping and crawling, it can be used for a wide range of purposes, from data mining to monitoring and automated testing.
Among many of its powerful features are built-in support for selecting and extracting data from HTML/XML sources using extended CSS selectors and XPath expressions and an interactive shell console for trying out the CSS and XPath expressions to scrape data.
Plotly is an open-source library used to make interactive, web-based visualizations that can be displayed in Jupyter notebooks, saved to standalone HTML files, or provided as part of Python-built web applications using Dash. It supports over 4- unique chart types that can be used to present data in a wide array of areas, including statistics, finance, geography, and science.
To differentiate it from the JavaScrip library, it’s sometimes referred to as “plotly.py.”
Seaborn is a highly popular data visualization library used to make statistical graphics in Python. It’s based on matplotlib and allows you to use it with the many environments that matplotlib supports. As opposed to matplotlib, it has a high-level interface.
The library makes it effortless to create stunning, amplified data visuals, and understand the data better by discovering unobvious correlations between variables and trends. Seaborn also integrates closely with Pandas data structures.
With so many great Python packages and tools out there to explore, there’s a good chance you know some exciting Python libraries that belong on this list, but didn't make the cut.
Do you think we’ve missed something we shouldn't have?
Feel free to suggest any additional Python software you find relevant by reaching out to us. We’ll reply to you and consider expanding our selection.
And since you’ve gotten through our whole list of Python libraries, maybe we could interest you in a beginner's introduction to Python web frameworks?