/python-courses

A compilation of python courses for different levels and areas on Jupyter NoteBooks

Primary LanguageJupyter NotebookMIT LicenseMIT

Compilation of selected Python courses for different levels and areas.

This repository contains several courses I have taught, differentiated by level and/or area.

Requirements

  • Have Python 3 (3.5) or newer installed. You can check the version by typing python3 --version in your command line. You can download the latest Python version from here.
  • Have Jupyter Notebook installed:
  • If not, use https://mybinder.org/ to create a full Jupyter NoteBook instance in the Cloud and add the URL of this repository to start.
  • You also can install Jupyter Notebooks within Docker container with many flavours (general, science, data-science, ...)

If you can not access Python and/or Jupyter Notebook on your machine, you can still follow the web based materials. However, you should be able to use Jupyter Notebook in order to complete the exercises.

Beginner

  1. Strings [notebook] [exercise]
  2. Numbers [notebook] [exercise]
  3. Conditionals [notebook] [exercise]
  4. Lists [notebook] [exercise]
  5. Dictionaries [notebook] [exercise]
  6. For loops [notebook] [exercise]
  7. Functions [notebook] [exercise]
  8. Testing with pytest - part 1 [notebook] [exercise]
  9. Recap exercise 1 [exercise]
  10. File I\O [notebook] [exercise]
  11. Classes [notebook] [exercise]
  12. Exceptions [notebook] [exercise]
  13. Modules and packages [notebook]
  14. Debugging [notebook] [exercise]
  15. Goodies of the Standard Library - part 1 [notebook] [exercise]
  16. Testing with pytest - part 2 [notebook] [exercise]
  17. Virtual environment [notebook]
  18. Project structure [notebook]
  19. Recap exercise 2 [exercise]

Intermediate

Idiomatic Python

Python is a powerful language which contains many features not presented in most other programming languages. Idiomatic section will cover some of these Pythonic features in detail. These materials are especially useful for people with background in other programming languages.

  1. Idiomatic loops [notebook]
  2. Idiomatic dictionaries [notebook]
  3. Idiomatic Python - miscellaneous part 1 [notebook]
  4. Idiomatic Python - miscellaneous part 2 [notebook]
  5. Idiomatic Python exercise [exercise]

Engineer

This section is focused on a bit more complex Python elements with array management/manipulation with NumPy and graphical libraries such as MathPlotLib.

See data folder required for many exercices in [datafolder].

  1. Introduction to numpy [notebook]
  2. Arrays management [notebook]
  3. Plots with matplotlib [notebook]
  4. Controlling plots elements and customization [notebook]
  5. Arrays n-dimensional [notebook]
  6. Indexing and slicing [notebook]
  7. Arrays of objects [notebook]
  8. Mixed arrays [notebook]
  9. Arrays manipulation [notebook]

Data Science

This section contains a complete data science course, covering aspects of working with data, manipulation, ETL, Data Mining and Machine Learning with Python.

See data folder required for many exercices in [datafolder].

  1. Introduction to Pandas [notebook]
  2. Introduction to Pandas Objects [notebook]
  3. Data indexing and selection [notebook]
  4. Operations in Pandas [notebook]
  5. Missing values [notebook]
  6. Hierarchical [notebook]
  7. Concatenating and appending data [notebook]
  8. Joining and merging data [notebook]
  9. Agregation and grouping data [notebook]
  10. Pivot tables [notebook]
  11. Working with strings [notebook]
  12. Working with time series [notebook]
  13. Performance evaluation and queries [notebook]
  14. Introducing SciKitLearn [notebook]
  15. Hyper-parameters and modelo validation [notebook]
  16. Feature engineering [notebook]
  17. Linear regression [notebook]
  18. Support vector machine (SVM) [notebook]
  19. Random forest [notebook]
  20. Principal component analysis [notebook]
  21. K-Means [notebook]
  22. Images features [notebook]

Contributions and acknowledgements

This repository has been completed from various sources of Python: