This is the continuation of series of blog post on getting started to data science using python(**part 1**,**part 2**,**part 3**,**part 4**,**part 5**,**part 6,****part 7****,****part 8,****part 9**) . So today will explore the building blocks of python with special emphasis on numpy .

Most frequently used python library for data science community . Why it is being used so extensively , we will find it in this blog post .

**Numpystands** for ‘Numeric Python’ , it is the core library in python to do the scientific computing . It is the container of tools and technique to compute mathematical model of science .

Multidimensional array object is one of the powerful data structure for computation of arrays and matrices .

Enough of the theory lets dig deeper .

If you are following us for a while you might have already installed ananaconda which comes pre-loaded with numpy !!

A numpy array comes with 2 important state variables. Just like Python, it automatically detects dtype (if not mentioned)

**dtype****shape**

Lets look into an example :

**Initialization of NumPy via arrange()**

**Initialization with Zeros and 2d array **

**Numpy stores matrix in a row major format i.e the entire row will be stored first and then the second row will be stored .**

**Similarly you can have it for ones too :**

**More on Example :**

In other words, you see that the result of x-y gives the shape of (3,4): y had a shape of (4,) and x had a shape of (3,4). The resulting array is formed from the maximum size of the array .

**Initialization with Random Values**

** **numpy.random.random(size=None,)

numpy.random.randint(low, high, size=None, dtype=’I’) : The value of matrix lies between low and high

numpy.random.randn(d0,d1,⋯,dnd0,d1,⋯,dn)

**Slicing and index in Numpy **:

This is a very important concept in numpy while we can used it for a variety of usage . This operation is very similar to list operation where you can index and slice using square [ ] .

Just like list, numpy also has 0 indexing. Let us see some of the commonly used slicing techniques .

- Generic Slicing Operation : [start]:[end]:[jump]
- Only jump ::2
- Only end :5
- Start and jump 2::-1
- End and Jump :5:2
- Start, end and jump 2:7:3

**Solving Mathematical problems using numpy :**

** **Numpy has a wide range of function to do mathematical operations :

np.add(), np.subtract(), np.multiply(), np.divide() and np.remainder().

**Broadcasting in numpy :**

It is a way to *broadcast* data of lower or same dimension onto another ndarray. It is similar to *map* operation in python.

**Matrix Operation :**

One of the very important operation to look out for as its being extensively used for image processing , vector calculation and a lot more :

- Inner Product
- Vector Vector
- Matrix Vector
- Matrix Matrix

- Outer product

#### Inner Product

In terms of Inner Product or Dot product, will be be nothing but sum of element wise product.

So, the dot product between vector v=[1,2,3]v=[1,2,3] and w=[2,4,6]w=[2,4,6] will be

1∗2+2∗4+3∗6

2+8+18

28

The **outer product** work as inverted L :

Lets look at few example :

Statistical Function in Numpy :

- mean(data,axis=0)
- var(data,axis=0)
- sum(data,axis=0)
- max(data,axis=0)
- min(data,axis=0)
- percentile(data, percentage,axis=0)
- std(data,axis=0)

**Reshape and resizing of matrix :**

Resizing of array is done to make combability of two operations so that the array are of same dimensions or different dimensions the element here gets changed .

**Reshaping in array :**

Besides resizing, you can also reshape your array, you give a new shape to an array without changing its data. Only key of reshaping is keep the size of the new array unchanged .

**Transpose Operation :**

numpy.transpose(a, *axes=None*)

This function reverses the axes for 2D array.

For multidimensional array, it permutes the matrix according to the axis argument.

This are some of the main function of NumPy , you can even use it for doing small visualization task .

There are lot can be done with numpy , will explore more of it in explanatory data analysis .

Stay tuned and happy learning !!