1. Getting Started with Python and the JupyterLab 3 IDE. Object Orientated Programming (OOP)
An introduction to the Python Programming Language and Object Orientated Programming using the JupyterLab IDE. This video is designed particular for those who want to understand Object Oriented Programming (OOP) for data science. i.e. those beginning in data science.
If you have not already installed Anaconda and updated JupyterLab to version 3, follow my installation tutorial video here:
https://www.youtube.com/watch?v=q8cMRt3w04Q
This video also discusses the merits of the JupyterLab IDE and the use of markdown to quickly write notes around your code in markdown files or markdown cells. JupyterLab is a good IDE for Python Code and Scientific style reports.
Written installation instructions (and uninstallation instructions) are available for both Windows and Linux here:
https://dellwindowsreinstallationguide.com/python-installing-anaconda-windows/
https://dellwindowsreinstallationguide.com/python-installing-anaconda-linux/
A more detailed interactive JupyterLab notebook associated with this tutorial video is available here and available to view within a web browser. The folder can also be downloaded and the notebook can be opened up within JupyterLab. For more details in opening the file see the installation tutorial video linked to above.
https://github.com/PhilipYip1988/1-object-orientated-programming/blob/main/objectorientatedprogramming.ipynb
To view in the browser the NBViewer version will load faster:
https://nbviewer.jupyter.org/github/PhilipYip1988/1-object-orientated-programming/blob/main/objectorientatedprogramming.ipynb
Note you may have to select wait or refresh when loading the file a handful of times as it takes tome to load the images.
Contents (time stamps to be added):
03:44 Numeric Variables
03:50 Integer Numbers (int)
15:32 Floating Point Numbers (float)
17:25 Booleans (bool)
20:29 Complex Numbers (complex)
23:36 Text Variables - A String of Characters (str)
32:20 The print Function
33:36 The input Function
36:47 if, elif and else Branching
44:42 try and except Branching
51:00 Custom functions
58:11 Lambda functions/expressions
1:02:15 Range objects (range) and (for and while) Looping
1:10:18 Asserting function inputs using the assert keyword
1:13:30 Custom Classes
1:14:56 Creating a Class
1:17:18 Inheritance
1:19:16 Class functions (known as methods)
1:21:52 Static Class methods
1:23:32 Instance variables (objects belonging to a class or instance of a class known as attributes)
1:24:12 Private attributes and methods
1:32:25 Datamodel methods (also known as double underscore abbreviated dunder methods or referred to as magic methods or special methods)
1:46:14 Inheritance with a Datamodel method
1:52:03 A custom Fraction class
2:02:29 Collections
2:02:37 The List collection (list)
2:04:28 Indexing a collection such as a str or list
2:12:36 The Dictionary Collection (dict)
2:16:30 Mutability
2:18:00 The Tuple Collection (tuple)
2:23:40 Tuple Unpacking and using Tuple Unpacking while assigning the output to a function or using a return statement while defining a function
2:25:55 Nested Collections
2:29:21 Creating a function with a variable number of positional input arguments *args or keyword input arguments **kwargs analogous to a list or dict respectively
Once comfortable with the object orientated programming concepts in this video it is recommended to familarise yourself with the three most popular Python libraries for data science numeric python abbreviated numpy used for array manipulation, the python and data analysis abbreviated pandas for dataframe or spreadsheet manipulation and the matplotlib python library. Detailed JupyterLab books for these are available here. To view in the browser use the nbviewer links:
https://nbviewer.jupyter.org/github/PhilipYip1988/2-numpy/blob/main/numpy.ipynb
https://nbviewer.jupyter.org/github/PhilipYip1988/3-pandas/blob/main/pandas.ipynb
https://nbviewer.jupyter.org/github/PhilipYip1988/4-matplotlib/blob/main/matplotlib.ipynb
Alternatively to open in JupyterLab, you can download the repository from GitHub:
https://github.com/PhilipYip1988/2-numpy/blob/main/numpy.ipynb
https://github.com/PhilipYip1988/3-pandas/blob/main/pandas.ipynb
https://github.com/PhilipYip1988/4-matplotlib/blob/main/matplotlib.ipynb
I have not yet made tutorial videos for these libraries in JupyterLab but have older videos made last year in the Spyder IDE:
https://www.youtube.com/watch?v=MohDi9XMOm0
https://www.youtube.com/watch?v=qaC7C7wOgos
https://www.youtube.com/watch?v=Wyq-z4pwgjA