Ecosystem
The Scientific Python ecosystem is a collection of open-source
scientific software packages written in Python. It is a broad and
ever-expanding set of algorithms and data structures that grew around
NumPy, SciPy, and matplotlib.
The ecosystem includes a wide variety of tools: some more specialized
to specific domains such as biological imaging or astronomy, and
others quite general for tasks such as data management and
high-performance computing.
It includes projects such as Pandas (for data analysis), NetworkX
(for graph computation), scikit-learn (for machine learning), and
scikit-image (for image processing).
Ecosystem Packages
Here is a curated selection of packages available in the ecosystem:
Core
- NumPy, the fundamental package for
numerical computation. NumPy defines the n-dimensional array data structure,
the most common way of exchanging data within packages in the ecosystem.
- SciPy,
a collection of numerical algorithms and domain-specific toolboxes,
including signal processing, optimization, statistics, and much
more.
- Matplotlib, a mature and popular plotting
package that provides flexible, publication-quality 2-D and 3-D visualization.
Data and computation
- pandas, providing high-performance,
easy-to-use data structures.
- SymPy, for symbolic mathematics and
computer algebra.
- NetworkX, is a collection of tools
for analyzing complex networks.
- scikit-image is a collection of
algorithms for image processing.
- scikit-learn is a collection of
algorithms and tools for machine learning.
- IPython, a command-line interface to Python,
for interactively exploring code, processing data, and testing code ideas.
- Jupyter Lab provides computational notebooks
that combine interactive code with descriptive text in your web
browser, useful especially for teaching and documenting research.
- Joblib,
Dask, or Ray
for distributed processing with a focus on numerical data.