Numpy array (Numerical Python) is an open source library used for mathematical calculations and doing scientific computing with Python. We will take a look at some NumPy array example but first we have to understand more about NumPy.

So it helps in creating a multi-dimensional array and perform all the mathematical function easier and faster. NumPy has an important N-dimensional array object which is Linear algebra for Python. There are two very important functions of Numpy. Vectors and Matrices. Matrices are 2-d array containing rows and columns where as Vectors contain 1-d array.

Also Read: Invoice2data Python Library: Introduction and Setup

## How to Install NumPy:

You can just copy paste the following command to install Numpy in your local.

pip install numpy

This is how it will look when pip installs the numpy packages.

## Numpy Array Examples and Explanations:

#### Creating a Numpy Array:

To create a array you have to pass a list. Firstly, The list has to be passed inside a square bracket. And it has to have a argument under **(np.array)** function.

A 3D array is collection of 2D arrays. It can specified using 3 subscripts row size, column size and block size. A 3D array can be a list where every element in the array can be a list.

** Example:**

import numpy as np array1d = np.array([1, 2, 3, 4, 5, 6]) array2d = np.array([[1, 2, 3], [4, 5, 6]]) array3d = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) print(array1d) print("-" * 10) print(array2d) print("-" * 10) print(array3d)

** Output:**

### Important functions of ndarray object:

The main data structure for multi-dimensional array for NumPy is **(ndarray)**.

**ndarray.shape:** It gives the dimension of the array. This tuple defines the shape the of each and every array.

**ndarray.size:** It gives the shape of the array. This tuple helps in defining the size of the array. This is equal to the products of the elements of the shape.

**ndarray.Ndim:** It determines the dimension of the array.

**ndarray.nbytes**: Number of bytes are used in storing the data.

### Data Types In Numpy:

**Data types** is a method that defines the data types that are stored in the numpy array. Also there is an option of defining the datatype by yourself by using the function **dtype**. So here are dtypes there variants and there function.

dtype | Variants | Description |

bool | Bool | Boolean(True or False) |

int | int8, int16, int32, int64 | Integers |

code>float | float16, float32, float64, float128 | Floating-point numbers |

uint | uint8, uint16, uint32, uint64 | Unsigned (nonnegative) integers |

complex | complex64, complex128, complex256 | Complex-valued floating-point numbers |

**Example explaining the dtypes:**

import numpy as np type1 = np.array([1, 2, 3, 4, 5, 6]) type2 = np.array([1.5, 2.5, 0.5, 6]) type3 = np.array(['a', 'b', 'c']) type4 = np.array(["Canada", "Australia"], dtype='U5') type5 = np.array([555, 666], dtype=float) print(type1.dtype) print(type2.dtype) print(type3.dtype) print(type4.dtype) print(type5.dtype) print(type4)

** Output:**

#### Defining the shape of an array:

Shape of an array defines the shape of an numpy array. It is in the form of **x*y** (x representing the rows) and (y representing the columns).

So here is an example for using the shape function:

import numpy as np array1d = np.array([1, 2, 3, 4, 5, 6]) array2d = np.array([[1, 2, 3], [4, 5, 6]]) array3d = np.array([[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]) print(array1d.shape) print(array2d.shape) print(array3d.shape)

Output:

**Dimension of an array:**

The ndim is a function that defines the dimension of the array.

**Example:**

import numpy as np array1d = np.array([1, 2, 3, 4, 5, 6]) print(array1d.ndim) # 1 array2d = np.array([[1, 2, 3], [4, 5, 6]]) print(array2d.ndim) # 2 array3d = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]) array3d = array3d.reshape(2, 3, 2) print(array3d.ndim) # 3

**Output:**

#### Resize an array:

The resize array is used in modifying the existing shape of an array.

**Example:**

import numpy as np thearray = np.array([1, 2, 3, 4, 5, 6, 7, 8]) thearray.resize(4) print(thearray) print("-" * 10) thearray = np.array([1, 2, 3, 4, 5, 6, 7, 8]) thearray.resize(2, 4) print(thearray) print("-" * 10) thearray = np.array([1, 2, 3, 4, 5, 6, 7, 8]) thearray.resize(3, 3) print(thearray)

** Output:**

#### Transform List or Tuple into NumPy array:

The numpy **array** also accepts** lists**,** tuple** and other functions of **numpy.ndarray** to create a new object in array.

**Example:**

import numpy as np thelist = [1, 2, 3] print(type(thelist)) # <class 'list'> array1 = np.array(thelist) print(type(array1)) # <class 'numpy.ndarray'> thetuple = ((1, 2, 3)) print(type(thetuple)) # <class 'tuple'> array2 = np.array(thetuple) print(type(array2)) # <class 'numpy.ndarray'> array3 = np.array([thetuple, thelist, array1]) print(array3)

**Output:**

Some Important Mathematical Numpy functions for generating arrays:

The mathematical numpy functions takes a single array of any dimension and return a new array with the same shape. So here are some important mathematical functions:

Functions | Description |

np.sqrt() | Square root |

np.cos(), np.sin(), np.tan() | Trigonometric functions |

np.arccos(), np.arcsin(), np.arctan() | Inverse trigonometric functions |

np.log(), np.log2(), np.log10() | Logarithms of base e, 2, and 10, respectively |

np.exp() | Exponential |

**Example to explain some of the mathematical functions:**

import numpy as np array1 = np.array([[10, 20, 30], [40, 50, 60]]) print(np.sin(array1)) print("-" * 40) print(np.cos(array1)) print("-" * 40) print(np.tan(array1)) print("-" * 40) print(np.sqrt(array1)) print("-" * 40) print(np.exp(array1)) print("-" * 40) print(np.log10(array1)) print("-" * 40)

**Output:**

#### Mathematical Operations Element wise:

Functions | Description |

np.remainder() | Return element-wise remainder of division |

np.sign(), np.abs() | Return sign and the absolute value. |

np.round() | Round a number to a given precision in decimal digits (default 0 digits) |

np.power() | First array elements raised to powers from second array, element-wise |

np.reciprocal() | Return the reciprocal of the argument, element-wise |

np.floor(), np.ceil() | Return the floor, ceiling of the input, element-wise |

**Example to explain the mathematical functions element wise:**

import numpy as np array1 = np.array([[10, 20, 30], [40, 50, 60]]) array2 = np.array([[2, 3, 4], [4, 6, 8]]) array3 = np.array([[-2, 3.5, -4], [4.05, -6, 8]]) print(np.add(array1, array2)) print("-" * 40) print(np.power(array1, array2)) print("-" * 40) print(np.remainder((array2), 5)) print("-" * 40) print(np.reciprocal(array3)) print("-" * 40) print(np.sign(array3)) print("-" * 40) print(np.ceil(array3)) print("-" * 40) print(np.round(array3)) print("-" * 40)

**Output:**

## Conclusion:

From this blog, you will learn about the characteristics of the **NumPy** library. Also, you will get to know about **NumPy’s** data structure for N-dimensional arrays and range of functions. Because of ndarray, the functionalities of Python can be extended. So it will become a suitable language for data analysis, scientific computing etc.

Therefore, we can say that understanding of **NumPy** is necessary for anyone who wants to take the road of data analysis. We hope that this will be helpful to you!