# NumPy - Introduction

**NumPy** stands for Numerical Python, is a library for the Python programming language. It provides support for large, multi-dimensional arrays and matrices, along with a large collection of routines for fast operations on arrays. It is a open-sourced software and has many contributors. The earlier version of NumPy was Numeric which was created by Jim Hugunin along with contributions from several other developers. Another package Numarray was also developed, having some additional functionalities. In 2005, with lot of modifications, Travis Oliphant created NumPy by incorporating features of Numarray into Numeric.

The following are the important features of the NumPy package:

**High-performance N-dimensional array object**: This is the most important feature of the NumPy library. Numpy can be used to create multi-dimensional array creation and manipulation.**Tools for integrating C/C++ and Fortran code**: It provides functions to work with code written in other languages. This helps implementing inter-platform functions.**Useful linear algebra, Fourier transform, and random number capabilities**: Numpy has the capability to perform complex operations on the array. It has separate modules for each of the complex functions such as: linalg module for linear algebra functions, fft module for Fourier Transformation, matrix module for matrix functions and matplotlib module for plotting graphs etc.**Broadcasting functions**: Numpy provides broadcasting functions which is a very useful concept to work with arrays of uneven shapes.**Data type definition capability**: It allows user to work with arrays of different data types. Along with this dtype function can be used to determine the data type of the array. The knowledge of the data type of array is very crucial due to the limitations on NumPy operations.

Numpy is generally used with other packages like - SciPy and Matplotlib. With this combination, it is widely used as replacement of MATLAB, a popular platform for technical computing. Due to the features like high computational capability, free and open-sourced software, Python as compared to MATLAB is now seen as new paradigm for technical computing.