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.

Productivity and high-performance computing#

  • 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.
On this page