SciPy is built upon which core packages?

SciPy is built upon the following core packages −

  • Python − Python, a general-purpose programming language, is dynamically typed and interpreted. It is well suited for interactive work and quick prototyping. It is also powerful to write AI and ML applications.

  • NumPy − NumPy is a base N-dimensional array package for SciPy that allows us to efficiently work with data in numerical arrays. It is the fundamental package for numerical computation.

  • Matplotlib − Matplotlib is used to create comprehensive 2-dimensional charts and plots from data. It also provides us basic 3-dimensional plotting.

  • The SciPy library − It is one of the core packages providing us many user-friendly and efficient numerical routines. The numerical routine includes routine for integration, interpolation, optimization, linear algebra, and statistics.

Along with that, SciPy also includes specialized tools for data management and computation, productive and high-performance computing, and quality assurance. These tools are described below −

Tools for Data Management and Computation

  • Pandas − Pandas is an open-source Python package used to organize and analyze our data. It provides us high-performance and easy-to-use data structures.

  • SymPy − This tool is used for symbolic mathematics.

  • NetworkX − This collection of tools is used to analyze complex networks.

  • scikit-image − As name implies, it includes algorithms for image processing.

  • scikit-learn − Scikit-learn provides us efficient tools for machine learning and statistical modeling including classification, regression, clustering, and dimensionality reduction.

  • PyTables and h5py − Both these tools are used to access the data stored in HDF5 format.

Tools for Productivity and high-performance computing

  • IPython − It is a rich interactive interface which let the user quicky process the data.

  • The Jupyter notebook − It provides IPython functionality in a web browser. With the Jupyter notebook we can document our computation in a reproducible form.

  • Cython − It helps us extend Python syntax to integrate with C/C++ libraries.

Tools for Quality assurance

  • nose − It is a rich framework for testing your Python code.

  • numpydoc − This tool is used for documenting Scientific Python libraries.