# NumPy

## What is NumPy?

NumPy, which stands for Numerical Python, was created in 2005 by Travis Oliphant. However, Numeric is the ancestor of NumPy, which Jim Hungunin developed. What separates the two are the additional functionalities NumPy has. This Python package is a library consisting of multidimensional array objects and a collection of routines for processing those arrays.

## Examples of NumPy

NumPy is useful for performing mathematical and logical operations on large high-dimensional arrays and matrices. With it, you can perform a wide range of numerical functions efficiently. NumPy simplifies coding procedures, provides online access to all its information, and collaborates with other libraries to make tasks more efficient. Here are four real-life examples where NumPy is used:

### 1. Web Development

Python is popularly known as the language of choice for web development and Pyramid, Django, and Flask. Standard libraries are included in these frameworks, making protocol integration easy and efficient.

### 2. Education Sector

Python is also used in the development of online courses and education programs. It is an easy language to learn for beginners since its syntax is similar to English. It provides a beginner with a standard library and a variety of resources to get a handle on the language, making it easier to learn. As a result, Python is a preferred programming language for beginners in developing education programs at both basic and advanced levels.

### 3. Game Development

Battlefield 2 was one of the most popular video games in the early 2000s, and it was developed in Python. Python frameworks are commonly used in game development, including Pygame, PyKyra, Pyglet, PyOpenGL, Kivy, Panda3D, Cocos2D, etc.

### 4. Software Development

Software developers primarily use Python. It simplifies the development of complex applications. The language is used for project management, as a support language, as build control, and test.

## Why is NumPy important?

NumPy stores data in much less memory and provides a mechanism for specifying data types. The code can then be optimized further. The following are three reasons why NumPy is so valuable:

1. Memory usage is reduced

2. Fast performance

3. Easy to work with

## NumPy vs. Other Technologies & Methodologies

### NumPy vs. Pandas

NumPy mainly works with numerical data, while Pandas deals primarily with tabular data. With Pandas, you can work with numeric data and time series in a fast, easy-to-use environment.  Pandas is written in Python, Cython, and C and is built around the NumPy library. Data can be imported into Pandas from various file formats, including JSON, SQL, Microsoft Excel, etc. Lastly, Pandas is used for data analysis and visualization, and NumPy is widely used for numerical calculations.

### NumPy vs. Scipy

NumPy stands for Numerical Python, and SciPy stands for Scientific Python; both are essential Python libraries. These libraries are used to manipulate data in various ways. In arrays of homogeneous data, NumPy is used for efficient operations. SciPy is a set of Python tools. These tools support integration, differentiation, gradient optimization, and many other functions. They are faster than other popular tools on the market. All general numerical computation is done via SciPy in Python.

### NumPy vs. Matlab

Python indexing begins at 0 and is performed with brackets, whereas MATLAB indexing begins at one and is performed with parentheses. NumPy provides efficient operations on arrays of homogeneous data in Python. Python can thus be used as a high-level language for manipulating numerical data, similar to IDL, MATLAB, or Yorick. In MATLAB, everything is treated as an array, whereas everything is a more general object in Python. In MATLAB, strings are arrays of characters or arrays of strings, whereas, in Python, strings are their type of object called str. MATLAB's scripting language was designed for linear algebra, so some array manipulations are easier in MATLAB than in NumPy.

### Numpy vs. Math

Math is part of the Python standard library. Basic mathematical operations are provided, as well as some commonly used constants. NumPy, on the other hand, is a third-party package designed for scientific computation. This is the defacto package for numerical and vector operations in Python. Math is a standard library that contains functions (trigonometry, logarithms) and constants. At the same time, NumPy is a mathematical library written in C. While the code is almost identical, the performance is very different. MATLAB takes 0.252454 seconds to complete the task, while NumPy takes 0.973672151566 seconds, nearly four times as long.