NumPy is a Python library used for working with arrays. It also has functions for working in domain of linear algebra, fourier transform, and matrices. NumPy was created in 2005 by Travis Oliphant. It is an open source project and you can use it freely. This module is mainly used for Data Science and Machine Learning.

## Installation

We can install NumPy using pip [pip is a python package manager]. Go to your terminal and type:

```
pip install numpy
```

## Using NumPy

To use the built in function from NumPy we have to import it first.

```
import numpy
```

But after that if we want to use any function we have to write numpy every time to use that. That's why it is convention to import numpy as np.

```
import numpy as np
```

## NumPy Arrays

NumPy arrays essentially come in two flavors: vectors and matrices. Vectors are strictly 1-d arrays and matrices are 2-d (but you should note a matrix can still have only one row or one column).

## Creating Numpy Arrays

We can create an array by directly converting a list or list of lists:

There are also some built in functions to generate arrays.

## arange

`numpy.arange([start, ]stop, [step, ])`

arange is like the range function of python. It returns evenly spaced values within a given interval. Here start and step is optional if we need it but stop is mandatory.

arange can be called with a varying number of positional arguments:

arange(stop): Values are generated within the half-open interval [0, stop) (in other words, the interval including start but excluding stop).

arange(start, stop): Values are generated within the half-open interval [start, stop).

arange(start, stop, step) Values are generated within the half-open interval [start, stop), with spacing between values given by step.

## zeros

`numpy.zeros(shape, dtype=float)`

It generates a array of given shape and type, filled with zeroes. Here shape can be a int which will generate 1D array or a tuple of ints which will generate matrices. Instead of tuple we can use list of ints also. And dtype is by default float but we can change it into int.

## ones

`numpy.ones(shape, dtype=float)`

It is same as the zeros function but instead of zeroes all of the elements are one.

## linspace

`numpy.linspace(start, stop, num=50)`

Returns num evenly spaced samples, calculated over the interval [start, stop]. And num is by default 50.

## eye

`numpy.eye(n)`

Return a 2-D array with ones on the diagonal and zeros elsewhere. Simply it generates a nxn identity matrix.

## Random

NumPy also has lots of ways to create arrays with random numbers.

## rand

`numpy.random.rand(d0, d1, ..., dn)`

Create an array of the given shape and populate it with random samples from a uniform distribution over [0, 1).

## randn

`numpy.random.randn(d0, d1, ..., dn)`

Return a sample (or samples) from the "standard normal" distribution. Unlike rand which is uniform. Also rand cannot generate negative values but randn can.

## randint

`random.randint(low, high=None, size=None)`

Return random integers from low (inclusive) to high (exclusive). If we don't mention size then it will return one value. For size we can pass an int or a tuple of ints or a list of ints.

## Array Attributes and Methods

## reshape

Returns an array containing the same data with a new shape. But we have to declare the shape such that we have the proper amount of elements. Suppose we have a array of 25 elements. We can transform it into a 5x5 matrix but we can not reshape into a 3x4 matrix as it can not contain 25 element.

## max

It will return the max value of the array.

## argmax

It will return the index of the max value of the array.

## min

It will return the min value of the array.

## argmin

It will return the index of the min value of the array.

## Shape

Shape is an attribute that arrays have which returns the shape of the array.

## dtype

You can also grab the data type of the object in the array.

That's it for today. Feel free to ask any question in the comment.

## Top comments (0)