Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Python and Machine Learning for Complete Beginners
Getting Started
Introduction (5:37)
How to Use This Course (10:36)
Installing Python (3:18)
Installing Powershell (4:18)
Python Virtual Environments (6:32)
Visual Studio Code (5:43)
Hello World (4:11)
The Shebang or Hashbang (4:08)
Where to Find the Source Code (2:11)
VS Code Tips (5:42)
Variables (5:36)
An Interactive Program (5:52)
Builtin Functions (5:17)
Numeric Variables (7:17)
Numeric Expressions (5:16)
Python Types (5:44)
Peforming Calculations (9:06)
Converting Temperatures (8:43)
Loops and Conditions
A Program Inspired By WarGames (1:33)
Boolean Variables (6:13)
The If Statement (8:25)
If Else (2:12)
Constants (6:51)
If Else If (7:20)
Comparison Operators (8:13)
Fridge Exercise (4:28)
Fridge Solution (9:03)
Fridge Improvements (8:37)
For Loops (5:23)
Ranges (4:46)
Indentation (4:23)
Break (5:42)
Continue (2:07)
Password Exercise (2:01)
Password Solution (6:04)
Boolean Operators (6:37)
Boolean Operators Exercise (2:11)
Boolean Operators First Solution (12:29)
Boolean Operators Second Solution (4:31)
While Loops (3:56)
Functions
Your First Function (7:20)
Multiple Functions (6:24)
Function Arguments (5:23)
The Identity Function (6:19)
Changing Parameters (4:48)
Return Values (6:52)
Multiple Arguments (5:46)
Factorial Exercise (4:50)
Factorial Solution (5:49)
Default Arguments (3:53)
Keyword Arguments (3:39)
Variable Length Arguments (4:59)
Variable Length Keyword Arguments (7:41)
Arguments and Parameters Summary (4:45)
Arguments Exercise Solution (3:46)
Multiple Return Values (4:25)
BMI Exercise Solution (3:10)
Containers
Tuples (5:26)
Packing and Unpacking Tuples (7:21)
Tuple Slicing (5:32)
Tuple Functions and Operators (7:54)
Lists (4:18)
Joining Lists (9:14)
Modifying Lists (9:18)
Extended Slicing (8:25)
Inserting and Extending Lists (2:41)
Removing List Items (4:36)
List Comprehensions (7:51)
List Comprehension Conditions (4:53)
List Comprehension If Else (3:23)
List Database Exercise (4:12)
Database Exercise Tips (5:06)
Database Exercise Functions (7:20)
Completing the Database (7:20)
About Data Validation (3:05)
Sets (7:00)
Adding To and Updating Sets (3:41)
Removing Items from Sets (5:07)
Set Union and Intersection (4:59)
Difference Update (4:22)
Set Exercise (1:16)
Set Exercise Solution (5:02)
Dictionaries (4:21)
Adding Items to Dictionaries (3:46)
Iterating Over Dictionaries (4:48)
Dictionary Views (4:50)
Deleting Dictionary Items (2:39)
The Dictionary Get Method (2:39)
Default Dictionaries (4:08)
Dictionary Comprehensions (4:43)
Dictionary Exercise (1:22)
Dictionary Exercise Solution (7:17)
Casefold and None (6:23)
Enumerate and Zip (3:38)
Improving the Dictionary Exercise Solution (3:58)
Hashing Algorithms (8:00)
Container Summary (5:23)
Time Complexity (7:43)
Lists of Lists (3:30)
Iterating Over Lists of Lists (5:50)
Dictionaries of Lists (4:12)
Dictionaries of Sets Exercise (6:59)
Dictionaries of Sets Solution Part 1 (4:33)
Dictionaries of Sets Solution Part 2 (7:39)
Global Variables (4:33)
Random Items (1:55)
Modular Arithmetic (5:07)
Containers Exercise (2:45)
Containers Solution Part 1 (5:29)
Container Solution Part 2 (8:35)
String Formatting
Formatting Strings (6:52)
String Review (7:41)
The Format Method (8:54)
F-Strings (2:13)
Raw Strings (2:59)
Regular Expressions
A Simple Regular Expression (3:43)
Matching Multiple Characters (2:45)
The Ternary Operator (3:35)
Greedy Matching (5:56)
Matching Numbers and Words (7:29)
Capture Groups (3:07)
Ranges in Regexes (4:33)
Character Classes (4:25)
Email Exercise Solution (3:29)
Character Class Not (6:24)
A Note On Escaping (2:50)
Regular Expression Comments (5:51)
Referring to Capture Groups (3:07)
Capture and Non-Capture Groups (5:44)
Matching Newlines (4:05)
Matching Ends of Lines (4:56)
Search (3:42)
Findall (4:46)
Matching Starts of Lines (5:39)
Splitting (2:36)
Substitution (1:37)
Alternatives (4:36)
Budget Exercise (2:45)
Budget Solution Part 1 (6:02)
Budget Solution Part 2 (7:48)
Ignoring Case (2:16)
Compiling Regular Expressions (6:32)
Lookahead Assertions (8:05)
Not Space or Digits or Text (4:15)
Regular Expressions Summary (5:59)
Handling Errors
Tracebacks (3:31)
Try Except (3:56)
Catching Errors (5:20)
Error Messages (3:09)
Raising Exceptions (6:41)
KeyboardInterrupt (4:10)
Finally (5:43)
Errors Exercise (1:21)
Errors Solution (6:11)
Calculating Pi Exercise (3:10)
Pi Exercise Solution (6:26)
Assertions (5:43)
Object-Oriented Programming
Classes (6:59)
Constructors (5:00)
Self (7:18)
Properties (7:14)
Converting to Strings (4:19)
Encapsulation (6:16)
An OO Word Game (8:03)
Choosing Words (4:17)
Guessing Letters (6:17)
Displaying Letters (5:53)
Completing the Word Game (7:08)
Getters and Setters (8:08)
Inheritance (5:54)
Overriding Methods (3:33)
Polymorphism (5:41)
Super Constructors (5:24)
Class Properties (7:03)
Assigning IDs (4:24)
Class Methods (6:53)
Objects and Classes (6:04)
OOP Exercise (4:39)
OOP Solution Part 1 (5:28)
OOP Solution Part 2 (6:25)
OOP Solution Part 3 (6:48)
Class Hierarchies (5:44)
Multiple Inheritance (3:29)
The Diamond Problem (6:01)
Mixins (7:00)
The Property Class (9:23)
Conway's Game of Life
Conway Game of Life (2:23)
A Basic GUI App (5:29)
Frames (5:04)
Refactoring Into Classes (5:06)
Grids (7:57)
A Canvas Class (4:09)
Getting Widget Sizes (9:18)
Drawing Cells (6:19)
A Cell Class (6:45)
Toggling Cell State (7:02)
Handling Button Clicks (5:51)
Selecting Neighbours (3:48)
Wrapping (8:12)
Game of Life Rules (3:38)
Implementing the Rules (8:30)
Clearing the Grid (2:11)
Randomising (6:46)
Modules
Modules Demo (5:04)
Conditionally Running Main (6:00)
Importing Parts of Modules (2:50)
Packages (2:58)
Games Package Solution (4:13)
Functions in Dictionaries (7:15)
Games Menu Solution (5:56)
Package Initialisation (6:49)
How Python Locates Modules (6:30)
Inspecting Modules (5:03)
Subpackages (3:59)
Package Attributes (4:25)
Referencing Parallel Packages (5:11)
Installing Modules (7:59)
Operators
Clock Exercise (3:16)
Clock Solution (3:38)
Implementing Add (2:45)
Implementing Unary Operators (5:10)
Flags (3:47)
Bitwise Or (5:49)
Bitwise Flags (5:51)
Bitwise And (1:42)
Flags Exercise (3:34)
Flags Solution (7:13)
Bitwise XOR and NOT (4:56)
Bit Shift Operators (7:07)
Hexadecimal Numbers (9:08)
Hexadecimal Colors Solutions (6:07)
Functional Programming
Recursion (5:38)
Introducing Functional Programming (3:33)
Passing Functions to Functions (3:43)
Iterators (6:19)
Powers of Two Iterator (4:05)
Mapping (5:17)
Lambda Functions (1:48)
Defining Functions in Loops (6:49)
1209_Lambda_Exercise_Solution (3:55)
Sorting (4:46)
Next and Iter (7:59)
Generating Characters (3:23)
Generators (4:45)
Generators Exercise (2:29)
Generators Solution (1:56)
General Generator Syntax (3:05)
Generators As Loops Solution (5:21)
Game of Life Solution (5:45)
Itertools (5:01)
Function Generators (3:56)
Powers of Two Generator Solution (2:04)
Filtering (2:33)
Reduce (4:07)
A Functional Word Exercise (3:35)
Functional Word Solution (4:01)
Functional Parsing Exercise (1:11)
Functional Parsing Solution (3:18)
Files
Reading Files (2:25)
Mall Customers Database (4:20)
Ensuring Files Get Closed (2:35)
Examining With (6:05)
Iterating Over Files (2:53)
Writing Files (3:12)
Files Exercise Solution (7:03)
Appending to Files (1:27)
Handling Binary Text (8:31)
Binary Files (3:13)
Serialization (3:05)
Serializing Integers (5:32)
Deserializing Integers (3:36)
Saving and Loading Ints (4:24)
Numbers Versus Bytes (11:28)
Python Arrays (7:49)
Saving Arrays (5:51)
Pickling (3:54)
JSON (5:05)
File Dialogs (8:21)
Game of Life Menus (4:55)
Game of Life Load and Save (9:30)
Testing Game of Life (5:03)
The OS Module (6:08)
Word Count Exercise (3:26)
Splitting into Words (7:20)
Counting Words (6:50)
Numpy
Numpy Arrays (6:37)
Creating Numpy Arrays (11:23)
Numpy Arithmetic (4:42)
Numpy Slicing (5:20)
2D Indexing (5:12)
Views (4:20)
Advanced Indexing (6:12)
Numpy Matrices (7:17)
Matrix Multiplication (6:17)
Numpy Functions (4:24)
Numpy Exercise (2:50)
Numpy Solution Part 1 (6:38)
Numpy Solution Part 2 (5:10)
Tiling (4:42)
Masks (2:18)
Combining Boolean Arrays (3:42)
Filtering Numpy Arrays (3:41)
Variance and Standard Deviation (5:42)
Variance Exercise (6:11)
Bessel's Correction (8:02)
Scaling and Variance (7:50)
Loading CSV in Numpy (1:52)
Graphs and Plotting
Pyplot Basics (3:09)
Styles (5:00)
Configuration (3:31)
More Configuration (6:22)
Word Lengths Exercise (1:35)
Word Length Plot Solution Part 1 (9:24)
Word Length Solution Part 2 (6:54)
Bar Charts (5:49)
Pie Charts (6:22)
Pie Chart Solution (5:51)
Scatter Plots (10:08)
Histograms (6:22)
Multiple Graphs on One Chart (4:51)
Subplots (6:50)
Subplots Solution (6:26)
3D Plots (6:02)
Pandas
Introduction (6:08)
Referencing Cells (3:58)
Loc and iloc (7:34)
Changing Values (5:44)
Pandas Functions (7:34)
Series (4:36)
Pandas Charts (3:09)
Sorting (6:11)
Correlations (6:02)
Grouping (6:52)
Grouped Types (5:09)
Group Aggregate Functions (4:18)
Filtering (4:25)
Multiple Groups (3:39)
Plotting Groups (8:15)
Binning (8:13)
Groupby Exercise (0:40)
Groupby Exercise Solution Part 1 (5:43)
Groupby Exercise Solution Part 2 (7:15)
Zipfs Law Exercise (8:38)
Zipfs Law Solution (5:11)
Regression
Linear Regression Data (5:20)
Introduction (4:35)
Configuring Labels (6:19)
Equation of a Line (7:01)
Linear Regression (7:36)
Why Add Constant (5:45)
R Squared (5:19)
Calculating R Squared (7:53)
1709_Train_Test (7:39)
Predictions With Linear Regression (8:31)
Linear Regression Exercise (2:52)
Plotting Grapes Solution (3:25)
Predicting Grape Weights (6:43)
Removing Outliers (6:56)
Multiple Linear Regression (5:05)
A Multiple Linear Regression Model (7:03)
About Polynomial Regression (6:20)
Polynomial Features (7:32)
A Polynomial Regression Model (9:02)
1720_A_Surprising_Result (6:55)
Binomial Logistic Regression and Causation (7:27)
Categorical Dummies (5:39)
The Logistic Equation (7:03)
Logistic Regression Model (6:32)
Multiple Logistic Regression (6:21)
Getting Predictions with Logistic Regression (3:23)
Confusion Matrices (6:40)
Scaling and Normalisation (8:38)
Normalising Split Data (7:15)
Using Standard Scaler (8:47)
Confusion Matrix Exercise (4:04)
Confusion Matrix Solution Part 1 (7:27)
Confusion Matrix Solution Part 2 (7:10)
Clustering
Clustering (5:34)
K-Means Clustering (8:17)
Centroids and Inertia (4:31)
The Elbow Method (7:35)
K-Means Exercise Solution (5:48)
Exercise Analysis (4:46)
The Iris Flower Data Set (4:09)
Loading the Iris Data (4:33)
Seaborn Plots (5:14)
K-Means Iris Exercise (2:15)
K-Means Iris Solution (12:07)
Permutations Exercise (4:52)
Permutations Solution (7:07)
Normalized Mutual Information (4:26)
Dendrograms (7:37)
The Linkage Table (9:23)
Clustering Iris Data (8:22)
Scikit-Learn Agglomerative Clustering (7:25)
Linkage and Affinity (7:08)
Fit Predict Transform (6:49)
Nearest Neighbours (5:26)
Spherically Symmetric Data (9:40)
DBSCAN (5:47)
Determining Epsilon (9:19)
Using DBSCAN (6:41)
DBSCAN Moons Exercise (6:44)
DBSCAN Moons Solution (7:54)
Silhouette Scores (4:43)
Nearest Neighbors Classification (2:08)
Using K-Neighbors Classifier (9:24)
Naive Bayes
Bayes' Theorem (13:15)
Naive Bayes (6:07)
Applying Naive Bayes to Classification (6:12)
An Email Dataset (1:20)
Loading Emails (7:29)
Counting Words (3:29)
Listing Common Words (7:02)
The Predictor Matrix (4:01)
Naive Bayes Classifiers (9:03)
Naive Bayes Exercise (4:17)
Naive Bayes Solution (6:39)
Classifying Irises (6:21)
Decision Trees
Gini Impurity (4:08)
Introduction (5:18)
Calculating Gini Impurity (5:36)
Gini Impurity Examples (5:52)
Decision Tree Exercise (1:35)
Decision Tree Solution (2:40)
Seaborn Iris Plots (7:18)
Plotting Decision Trees (5:47)
Principal Component Analysis
Introduction (4:57)
Data for PCA (7:18)
How PCA Works (9:34)
Transforming Data With PCA (8:37)
Explained Variance Ratios (9:04)
Iris Data PCA Analysis (8:09)
PCA Components (5:03)
Classifying Irises With PCA (9:05)
PCA Tips (6:59)
PCA Exercise (3:36)
PCA Solution (13:42)
The MNIST Dataset (4:23)
Fetching from Openml (6:26)
Loading MNIST With Keras (6:33)
Character Recognition (9:47)
Configuring Logistic Regression (8:37)
Displaying Images (7:04)
Artificial Neural Networks (ANNs)
An Artificial Neuron (5:42)
Activation Functions (5:31)
Minimizing Loss (8:22)
Preparing Iris Data (8:30)
A Basic ANN (10:27)
Dropout and Tweaking the Network (5:23)
MNIST Exercise (4:21)
MNIST Preparing the Data (4:38)
MNIST ANN (9:34)
Improving the MNIST ANN (4:57)
Comparing Subarrays (5:43)
Displaying Misclassified Images (6:18)
Saving and Loading (3:29)
Pipelines (6:23)
Standalone Classifier (4:09)
California Housing Dataset (4:08)
Regression Neural Net (8:54)
Improving Regression (3:30)
Analysing Results (7:33)
Detecting Overfitting (8:51)
Conclusion
Conclusion (5:08)
Teach online with
Catching Errors
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock