
Explore data analysis, data visualization, and data exploration to convert raw data into useful information, uncover hidden patterns, and apply Monte Carlo simulations within this data and visual analytics course.
Succeed in this course by studying sections in order, solving exercises first, reviewing solutions, and practicing code after each section to sharpen data analysis, simulation, visualization, and exploration skills.
Learn to use Google Colab for running Python code and Jupyter notebooks with free cpu and gpu access, preinstalled packages, and a Gmail account.
Learn to mount Google Drive in Google Colab, set the correct path to your dataset, and read CSV files with pandas for analysis and visualization.
Learn to mount Google Colab drives, set file paths, read a data set and an image, and display results using matplotlib in a practical Colab workflow.
Learn to read data sets in Python using seaborn and Google Colab sample data. Read iris from seaborn, display head ten, and use pandas read_csv with a copied path.
Download the course material zip from resources, unzip it to create a course material folder, and upload that folder to Google Drive.
Explore NumPy for creating 1D to higher dimensional arrays and master Python data structures like lists, dictionaries, tuples, and strings, plus built-in functions zip, map, filter, and join.
Explore arithmetic operations in Python, including addition, subtraction, multiplication, division, floor division with //, exponent with **, and modulo %, learn bodmas precedence and soft coding with variables.
Learn how Python's comparison operators (>, <, ==, !=, >=, <=) produce booleans, and apply and or logic to combine comparisons for true or false outcomes.
Explore conditional statements using if and else, including nested if-else logic and the and/or operators. See how comparison and logical operators drive true or false branches in code.
Learn to import numpy as np, create one- and two-dimensional arrays, and explore shape, size, data type, and indices of max and min values with argmax and argmin.
Learn to generate and reshape numpy arrays using arange and linspace, create zeros, ones, and identity matrices, and produce random numbers including integers from normal and uniform distributions.
Learn to index and slice NumPy arrays, from 1D vectors to 4x4 2D matrices, extracting elements, ranges, last items with negative indices, and submatrices.
Learn how broadcasting in NumPy enables arithmetic on arrays with different shapes, including element-wise addition and stacking operations such as vstack and hstack.
Explore lists in Python and differentiate them from numpy arrays, learn to create, index, slice, and modify lists, including nested lists and simple matrices.
Explore Python for loops with range, colon, and indentation to print numbers and sums, generate even and odd values, filter by divisibility, and build lists with append.
Master nested for loops by exploring outer and inner iterations, applying them to matrices with np.zeros placeholders, and building a checkerboard.
Explore how the while loop runs until a condition is false, using initialization, x += 1 increment, and printing the current value; include break to avoid infinite loops.
Explore strings in Python, a data type that stores words, sentences, and characters, and learn creation, indexing, immutability, and key methods such as upper, split, and find.
Learn to print strings using the print function and the dot format method, filling curly-brace placeholders with indexed or alphabetic values to form phrases like the quick brown fox.
Explore how dictionaries differ from arrays by using keys to index values. Create dictionaries with key value pairs, access data with keys, and iterate over items, keys, and values.
Learn to create and manipulate dictionaries, including key value pairs, lists as values, and extracting data via indexing. Explore empty and nested dictionaries and how to access inner values.
Learn how to define and call functions in Python using def, parameters, and colon; explore creating simple functions for addition, multiplication, and hello world, and calling them with various inputs.
Learn how to create and call functions in python, return versus print, and assign results to variables; also explore prime number checks with a for loop and modulo operator.
Tuples are immutable sequences that use parentheses, differ from lists, and support indexing, slicing, length checks, concatenation, and finding minimum and maximum values.
Learn how to create small, quick Python functions using lambda, compare with def, and implement examples like squaring numbers, extracting first characters, adding numbers, and simple math expressions.
Learn how to use Python's map function to apply a Fahrenheit converter to a list of temperatures, including using lambda inside map and mapping across multiple iterables.
Learn how Python's reduce function from functools turns an iterable into a single value by applying a function, with examples for max, multiply, and add.
Learn how to use the Python filter function to extract even numbers from a NumPy array and vowels from a list of alphabets, using custom check functions.
Learn how zip aggregates elements from multiple iterables into tuples, how to unzip with an asterisk, and how to unpack tuples in for loops.
Learn how to use the join function to combine sequence elements with various separators, including empty and space, to form words like hello and word using any separator character.
Explore the pandas library for data analysis, built on numpy, and learn to read and write data frames and series, handle missing values, group by, and pivot tables.
Create a pandas series, a one-dimensional labeled array, by supplying data and an index, and learn to build it from lists or dictionaries for labeled access.
Explore operations on pandas series by creating math and physics score series, performing elementwise arithmetic (multiply, divide, add), and combining series with add and fill_value=0 to handle missing data.
Create pandas data frames by combining multiple series with data, index, and columns. Read csv files with pandas, build frames from dictionaries, and inspect with head, tail, info, and describe.
Learn to work with rows and columns in data frames by extracting columns as pandas series or numpy arrays, and using loc, iloc, add, and drop operations.
Learn to deal with missing and null values in a pandas data frame, cleaning data and imputing with mean, median, or standard deviation, and applying replace and dropna techniques.
Learn to filter Pandas data frames using single- and multi-column conditions, including and, or, and isin, to extract relevant subsets such as age over 25 or Sundays.
Explore pandas statistical methods on data frames, including describe and transpose, sortvalues, and correlation for numeric columns; learn value counts, unique, map, between, sample, and selecting top or bottom values.
Learn to combine data frames in Python using concatenation and merge. Explore concatenating along rows or columns and performing inner, left, right, and outer joins based on shared keys.
Learn how to use the pandas groupby method to split a data frame into day-based groups, apply aggregates like mean, sum, min, and max, and handle multi-level indices.
Learn how to perform multi-level indexing with pandas by grouping by days and category, creating outer and inner indexes, and using loc with tuples, and aggregate with mean and median.
Convert date strings in Pandas series to date time objects, then access year, month, day, and time components, while handling multiple formats by aligning to a common default format.
Learn to read a CSV with pandas, convert the date column to datetime, and use resample for yearly and monthly revenue means, plus dt methods including leap year checks.
Learn how to use pandas pivot and pivot table to reorganize data by index and columns, compare with groupby, and apply aggregates.
Explore Matplotlib for Python data plotting and visualization, learn its functional and object-oriented approaches, and practice customization of titles, labels, colors, and rc parameters while building figures and subplots.
Import NumPy and matplotlib.pyplot as plt, generate ten x values from 0 to 5 with linspace, compute y as 2x, and plot with plt.plot to show the first matplotlib plot.
Explore plotting two plots with matplotlib, x,y and y,x, on one canvas or in two figures, using plt.show to separate them.
Change the plot color in matplotlib by passing a color argument to plt.plot. Try red, magenta, green, yellow, or black using codes like 'r', 'm', 'g', 'y', and 'k'.
Explore how to change the figure size in matplotlib using plt.figure with a figure size, adjusting width and height for a plot of y against x square in red.
Learn to adjust line thickness in Matplotlib by passing the line width parameter in plt.plot, with examples from 2 to 3, 5, and 15, noting the default width of two.
Label the x axis and y axis to make plots informative, adjust font size for axis labels, and customize axis text to reflect time and amplitude in your figure.
Plot y against x with a red line and label the curve as y is equals to x square. Use plt.legend() and plt.title() to add a legend and title.
Create a sine wave from a time vector and plot it with matplotlib, then set x axis and y axis limits for a clean, focused visualization.
Learn how to set x and y ticks in matplotlib, tick values, and remove axes while plotting a sine wave with time on the x-axis and amplitude on the y-axis.
Master matplotlib plotting by applying a dark background, customizing line style, marker size and colors, and adding markers, grid, and legends to create clearer visualizations.
Explore matplotlib styles, including dark background and gray scale, and learn to apply styles to a sine-wave plot with customized line, markers, labels, and axes.
Learn sub plotting in matplotlib to compare data side by side using two by two grids, adjust spacing with tight_layout and figure size, and plot sine waves with varying frequencies.
Explore rc parameters, the runtime configuration parameters that set global plot styles in Matplotlib, ensuring consistent line width, line style, and font size across all plots.
learn to apply object oriented programming in matplotlib by building a figure object, creating multiple axis objects with normalized coordinates, plotting on them, and saving figures with tight bounding boxes.
Learn to use plt.subplots with the figure object to create multi-plot layouts, plot data on axis objects, customize labels and titles, and adjust spacing with subplot_adjust for clear visualizations.
Master advanced matplotlib plots, including logarithmic scales, grid customization, and twin axes. Learn to create two dimensional visuals: scatter, step, bar, and fill-between, with labeled axes and LaTeX annotations.
Explore advanced matplotlib techniques: annotate text on plots, arrange diverse subplots with subplot to grid, and render 3d surface plots using meshgrid and plot_surface.
Explore seaborn, a python visualization library built on matplotlib that enables inference from pandas data frames. Learn scatter, distribution, categorical, comparison, grids, matrix plots, and LM and pie plots.
Explore seaborn scatter plots to visualize relationships among college data features, including salaries, expenditure, and research, using hue to distinguish degree types and reveal correlations.
Explore scatter plots in Seaborn to visualize relationships between features such as salary and expenditure, using hue, palette, size, alpha, and style for rich data insights.
Explore distribution plots in seaborn, including rug plots, histograms, and KDE plots, to visualize data distribution, infer the mean and spread, and understand density estimation with a gaussian kernel.
Plot the distribution with Seaborn, including rug plots and histogram visuals for a 1000-sample salary dataset. Customize bins and styles to reveal the data distribution.
Learn how seaborn's KDE plot uses a gaussian kernel to smooth distributions, independent of bin size, and how bandwidth and clipping shape the probability density function and bivariate KDE.
Learn to use categorical plots in Seaborn, including estimator plots (count and bar) and distribution plots (box, violin, swarm, and letter value), with hue and IQR concepts.
Explore seaborn categorical plots by building count plots and bar plots with the tips dataset. Learn to use hue and palette, inspect means and variability, and customize estimators and legends.
Learn to create box plots and violin plots with Seaborn from the tips data set, using hue, palette, width, orientation, split, inner, and bandwidth to reveal quartiles, medians, and density.
Learn swarm plots and boxen plots in seaborn using tips data set, and compare them with strip and violin plots, using hue, dodge, and legend to reveal distribution and outliers.
Explore joint plots and pair plots in Seaborn to compare numeric features by combining scatter plots with histograms, hexbin, or KDE plots, plus hue by degree offered.
Explore seaborn grids with cat plot and pair grid on the tips data set; use row and column and map upper, diagonal, lower to show strip, box, violin, and KDE.
Explore seaborn matrix plots by creating heat maps and hierarchical cluster maps, visualizing matrix values with color coding, annotations, and viridis color maps, including hierarchical clustering and dendrograms.
Utilize Seaborn lm plots to fit a linear model on scatter data. Explore relationship between salaries and expenditure, with hue by degree offered and optional confidence intervals.
Learn how to create a pie plot with seaborn, using the tips data set to count categories, set labels, explode slices, and adjust auto percentage and shadow.
Apply pandas, seaborn, and matplotlib to explore a Titanic dataset, perform data cleaning, univariate and bivariate analyses, and visualize survival patterns with count, pie, and distribution plots.
Deliver the first part of the project solution by importing data, checking shape and nulls, cleaning the Titanic dataset, and beginning survival analysis by sex and embarkation.
Analyze the Titanic data with statistics and grouping to compare age and survival. Use distplot, violin plots, count plots, and pair plots to reveal age and class effects on survival.
Explore Monte Carlo simulations and visualization by implementing repeated sampling in Python to predict outcomes of uncertain events, such as coin flips and dice rolls, and visualize results with histograms.
Explore random experiments and sample spaces by flipping a coin and a pair of coins. Learn the outcomes and probabilities via Monte Carlo simulations and preview Python implementation.
Use Monte Carlo simulations of a single coin flip in Python to estimate head probability and visualize the distribution with KDE and histogram.
Explores Monte Carlo simulations to compute the probability of two heads when flipping a pair of coins, showing 10,000 trials approximate 0.25 and reveal a distribution around that value.
Explore the sample space of a single die and a pair of dice, and use Monte Carlo simulations to estimate probabilities like 1/6 and 1/36.
Explore Monte Carlo simulations by rolling a six-sided die to estimate the probability of sixes, using numpy to generate 1–6 outcomes and observe convergence to 1/6.
Explore a Monte Carlo simulation to estimate the probability of two sixes on a pair of dice, using 10,000 trials and a distribution plot to approach 1/36.
use monte carlo simulation to estimate the probability of rolling a six followed by a two on a pair of dice, using 10,000 trials and histogram visualization.
Roll three dice and prove that the probability of a sum of ten is greater than a sum of nine, and compare your solution with the instructor's.
Demonstrate a Monte Carlo simulation to compare the probabilities of getting sums nine and ten when rolling three dice, using 10,000 trials and 2,000 repeats, and visualize with Seaborn histograms.
Explore project two by counting flips needed to reach 10,000 heads and plotting the counts with a histogram, using the 0.5 head probability to anticipate about 20,000 flips.
Use a Monte Carlo simulation to count how many coin flips are needed to reach 10,000 heads, and plot the distribution with numpy, matplotlib, and seaborn.
Explore time series generation and visualization by creating impulse, square, triangular, sinusoidal, exponential, chirp, and synthetic time series. Learn how equally spaced data points and time order affect the meaning.
Explore impulse signals and impulse time series, from the unit impulse at t=0 to discrete and continuous forms, highlighting sharp transients and how multiple impulses form an impulse train.
Generate and visualize unit impulse signals in Python, using discrete stems and continuous plots to illustrate impulse series. Build impulse trains with SciPy's signal.unit_impulse at specified times.
Generate and visualize a square wave as a periodic time series with two levels (1 and -1) and sharp transitions, using numpy, scipy.signal.square, and matplotlib in Python.
Explore triangular waves, a periodic, non-sinusoidal, piecewise linear time series with linear rise and fall, generated in Python via the sawtooth function and its width parameter.
Explore sinusoidal time series, a smooth, periodic signal with time period defined by x(t) = sin(2 pi f t) for t > 0, ideal for ML and DL model testing.
Generate and visualize a sinusoidal time series in Python using numpy and matplotlib, creating 1000 samples over 0 to 1 second, plotting a sine wave with a frequency of four.
Explore the unit exponential time series, a decaying, not periodic signal with magnitude one at t=0, governed by e^{-t}. Learn its features and how to implement the decay in Python.
Generate and visualize exponential time series in Python using numpy and matplotlib, exploring decaying and rising forms from 0 to 10 with 100 samples.
Learn to generate and visualize a chirp time series, a non-stationary signal whose frequency increases over time, using Python with numpy and matplotlib to create and plot a sine-based chirp.
Learn how to generate synthetic time series that mimic real-world data using python, combining time, sine waves, uniform noise, and trend, and visualize it with matplotlib.
Write code to generate and visualize a 200-sample synthetic time series with zero trend for the first 100 samples, a jump at 100, and a rising post-jump trend.
Generates a synthetic time series by combining sine wave with uniform noise, using a 200-sample time vector from 0 to 50, then add a constant and rising trend after 100.
Learn to read and display images with numpy and matplotlib, explore color images (225x225x3) and grayscale images (gray cmap), and understand 8-bit unsigned integer and float32 formats.
Explore edge, line, and corner concepts in images: an edge is a two-sided intensity transition, a line joins two close edges, and a corner forms at their intersection.
Learn to draw and visualize lines on images using OpenCV. Create color and grayscale images, draw lines with cv2.line, and understand in-place updates.
Learn to draw and visualize edges and corners on images using numpy and opencv, then generate and save a 4000-image 64 by 64 grayscale dataset of edges for machine learning.
Learn to draw rings and circles on images using the cv2.circle function, choosing fill parameters to create rings or filled circles, with center, radius, and color.
Create a custom data set of 4000 images with circles at varying positions in 64 by 64 grayscale pngs, and save them to a folder for machine learning training.
Create a white image and draw a red line from 150,150 to 400,400 with thickness five, plus a green corner, vertical edge, a blue ring, and pink circle at 300,300.
Demonstrate image creation and visualization with OpenCV and numpy by drawing a red line on white, filling a green corner, black edge, and rendering a blue ring and pink circle.
Description
This is a complete and comprehensive course on Data Analysis, Simulation, Visualization and Exploration. It is hands-on course design to make you expert by solving projects and exercises by using Python’s most important packages and libraries such NumPy, Pandas, Matplotlib and Seaborn.
Course Outline
NumPy and Python Refresher
In this section of the course, we learn basic and fundamentals of python. If you don’t know anything about the python, even then you do not need to worry about, this section will provide you all the fundamentals.
Pandas ( Data Analysis )
In this section we deep dive into Pandas to learn Pandas Series, Pandas Data Frames, groupby method, pivot table, conditional filtering with Pandas, Combining Data Frames and Other advanced data analysis techniques
Matplotlib ( Data Plotting and Visualization )
We learn everything of Matplotlib from fundamental to advanced. We learn how to customize the figures and plots from 1D to 3D.
Seaborn ( Data Visualization and Inference )
In this section, we dive deep into Seaborn. It is the most important Visualization package for data visualization Inference. It provides the plots, charts and visualization in such manners that other than visualizing we can also infer the statistical information from the data such as the data distribution, mean, median, Interquartile range etc.
Project ( Data and Visual Analytics )
After learning Pandas, Matplotlib and Seaborn, now its time to do a project that require the knowledge from above three sections. In this section you will have to solve the project to get expertise in Data Analysis and Visualization.
Montecarlo Simulations and Visualization
We Perform Monte Carlo Simulation when we are not sure about the outcome of some process. In this section we perform several experiments of Montecarlo Simulations and then at the end you will solve exercise to solidify your concepts
Time Series Generation and Visualization
Time Series is a very important type of data with numerous practical applications. In this section you will learn how to create different types of time series data. At the end of this section, you will solve an exercise to get command on time series generation and visualization
Image Creation and Visualization
Image is another very import data type. This section is dedicated to make you understand how to create your own color and gray scale images. We will also learn how to draw lines, edges, corners, rings and circles on the images. We will also learn how to create our own custom image dataset. At the end of this section, you will solve an exercise to get the full understanding of image creation and visualization