Data analysis and data visualisation are two closely related activities in the field of data science. Getting insights from data using statistical and computational methods is part of data analysis. This process may involve cleaning and transforming the data, and then performing various statistical tests and modeling techniques to extract insights.

Once the data analysis is complete, the next step is to visualize the data in a way that is easily interpretable and can communicate the insights gained from the analysis. Data visualization is the process of creating visual representations of data, such as charts, graphs, and other visualizations that can communicate patterns and relationships in the data.

In many cases, data analysis and visualization go hand in hand, as data visualization can be used to communicate the results of data analysis in a way that is easily understandable and accessible to stakeholders. For example, a data analyst might use Python to perform data analysis on a large dataset, and then use Python’s data visualization libraries such as Matplotlib or Seaborn to create visualizations that can communicate the results of the analysis to non-technical stakeholders.

In other cases, data visualization can also be used as a tool for data analysis itself. For instance, in exploratory data analysis, data visualizations are used to gain an understanding of the data and to identify patterns and trends that may not be immediately obvious from the raw data.

Overall, data analysis and visualization are complementary activities that are often used in tandem to gain insights from data and communicate those insights to others.

In this blog, we will explore the basics of data analysis and visualization in Python.

##### Data Analysis in Python

Python has several libraries for data analysis, including NumPy, Pandas, and Matplotlib. These libraries provide tools for manipulating, analyzing, and visualizing data.

###### NumPy

It is short for Numerical Python and is the fundamental package for scientific computing with Python. NumPy provides a fast and efficient way to handle arrays and matrices. It is widely used in scientific computing, finance, and data analysis. NumPy provides a wide range of functions for numerical operations such as mathematical, logical, shape manipulation, sorting, selecting, I/O, discrete Fourier transforms, basic linear algebra, basic statistical operations, and much more.

*Usage of Numpy is covered in detail in following blog: link*.

We can create a ‘*NumPy*‘ array using the ‘

‘ function. For example, to create a NumPy array of numbers from 1 to 10, we can use following code:*np.array()*

```
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(f'{arr=}, {len(arr)=}, {max(arr)=}, {min(arr)=}')
```

```
Output:
arr=array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), len(arr)=10, max(arr)=10, min(arr)=1
```

###### Pandas

Pandas is a library built on top of NumPy that provides tools for data manipulation and analysis. It is widely used in data science and is considered one of the most powerful and flexible open-source data analysis and manipulation tools available. Pandas provides two main data structures – Series and DataFrame – which allow you to manipulate and analyze tabular data.

*Usage of Pandas is covered in detail in following blog: link*.

We can create a DataFrame using the ‘

‘ function. For example, to create a DataFrame with three columns – name, age, and gender – we can use following code:*pd.DataFrame()*

```
import pandas as pd
data = {'name': ['John', 'Alice', 'Bob', 'Emily'],
'age': [25, 30, 35, 40],
'gender': ['M', 'F', 'M', 'F']}
df = pd.DataFrame(data)
print(f'{df=}, \n\n{df.dtypes=}')
```

```
Output:
df=
name age gender
0 John 25 M
1 Alice 30 F
2 Bob 35 M
3 Emily 40 F
df.dtypes=
name object
age int64
gender object
dtype: object
```

##### Data Visualization in Python

Python provides several libraries for data visualization, including Matplotlib, Seaborn, and Plotly.

###### Matplotlib

It is a data visualization library that provides tools for creating various types of charts such as line charts, scatter plots, and histograms. Matplotlib is highly customizable, and you can change almost every aspect of the chart, including the colors, labels, and titles. Matplotlib is widely used in data science and scientific computing.

We can create a simple line chart using the ‘

‘ function. For example, to create a line chart of the population growth over time, we can use following code:*plt.plot()*

```
import matplotlib.pyplot as plt
years = [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019]
population = [1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800, 1900]
plt.plot(years, population)
plt.xlabel('Year')
plt.ylabel('Population')
plt.title('Population Growth')
plt.show()
```

`Output:`

###### Seaborn

Seaborn is a data visualization library built on top of Matplotlib that provides tools for creating statistical graphics such as heatmaps, box plots, and violin plots. It is highly customizable and provides a range of color palettes to choose from. It is widely used in data science and scientific computing.

Here is a quick example:

```
import seaborn as sns
import pandas as pd
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)
sns.scatterplot(x='x', y='y', data=df)
```

`Output:`

###### Plotly

It is a library for creating interactive data visualizations in Python. It provides tools for creating various types of charts, such as line charts, scatter plots, and 3D charts.

Here is a quick example:

```
import plotly.graph_objs as go
import pandas as pd
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)
fig = go.Figure(data=go.Scatter(x=df['x'], y=df['y'], mode='markers'))
fig.show()
```

`Output:`