## What is NumPy?

The NumPy library for working with multi-dimensional arrays in Python.

NumPy (short for Numerical Python) was created in 2005 by merging Numarray into Numeric. Since then, the open source NumPy library has evolved into an essential library for scientific computing in Python.

What makes NumPy so incredibly attractive to the scientific community is that it provides a convenient Python interface for working with multi-dimensional array data structures efficiently; the NumPy array data structure is also called `ndarray`

, which is short for *n*-dimensional array.

## What is the purpose of NumPy?

To being mostly implemented in C and using Python as a “glue language,” the main **reason** why NumPy is so efficient for numerical computations is that **NumPy arrays use contiguous blocks of memory that can be efficiently cached by the CPU**.

NumPy arrays have a fixed size and are homogeneous, which means that all elements must have the same type. **Homogenous ndarray** objects have the advantage that NumPy can carry out operations using efficient C code and avoid expensive type checks and other overheads of the Python API. While adding and removing elements from the end of a Python list is very efficient, altering the size of a NumPy array is very expensive since it requires to create a new array and carry over the contents of the old array that we want to expand or shrink.

**NumPy (short for Numerical Python) is “the fundamental package for scientific computing with Python” and it is the library Pandas, Matplotlib and Scikit-learn builds on top off. You might think “what’s the point of using NumPy when I could be using these libraries?” but I think that NumPy is often underrated and when used right, it could be quite a powerful tool for numerical operations in Python**.

## Why NumPy is used in machine learning?

**NumPy** library is an important foundational tool for studying **Machine Learning**. Many of its functions are very useful for performing any mathematical or scientific calculation. As it is known that mathematics is the foundation of **machine learning**, most of the mathematical tasks can be performed using **NumPy.**

## Summary

Here we come at the end of Numpy Features. NumPy provides a highly efficient multi-dimensional array. It also contains the necessary tools to manipulate and perform operations on these arrays. It is one of the best packages to use for data science implementation. Also it is the best alternative for lists. Additionally, it is an important companion to other packages that can be put into use for data manipulation and machine learning