Skip to content

Commit a7d9812

Browse files
committed
Updated Structure
1 parent 2c2653b commit a7d9812

25 files changed

Lines changed: 300 additions & 152 deletions

README.md

Lines changed: 80 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,88 @@
33
![Code Size](https://img.shields.io/github/languages/code-size/sampreet/python-for-physicists?style=for-the-badge)
44
![Last Commit](https://img.shields.io/github/last-commit/sampreet/python-for-physicists?style=for-the-badge)
55

6-
> A complete tutorial series for programming in Python, specifically aimed to suffice simulation and visualization requirements in physics.
6+
> A complete series for programming in Python aimed to suffice simulation and visualization requirements in Physics.
77
88
*Python* is an interpreted, high-level, general-purpose language supporting object-oriented programming with more emphasis on code-readibility and extensibility.
9-
It has a wide range of applications ranging from scientific computing libraries like TensorFlow, to stand-alone applications like Blender.
9+
It has a wide range of applications and is the backbone of widely-used scientific computing libraries like TensorFlow, and even stand-alone applications like Blender.
1010

11-
This tutorial series gradually traverses from basic to advanced topics of Python for scientific computing purposes pertaining to the area of physical sciences.
12-
The tutorials and their corresponding notebooks are clubbed into different modules based on the topics covered in the [modules folder](./modules/).
11+
This series gradually traverses from basic to advanced topics of Python for numerical simulations, deriving analytical expressions and visualizing results pertaining to the area of physical sciences.
12+
These tutorials and their corresponding notebooks are clubbed into different modules based on the topics covered in the [modules folder](./modules/).
1313

14-
Currently, the following modules are being updated with time:
14+
## Beginner-level Topics
15+
---
1516

16-
- [x] Getting Started
17-
- [ ] Fundamentals of Python
18-
- [ ] Visualizing Data
19-
- [ ] Scientific Computing
20-
- [ ] Best Practices
21-
- [ ] Mechine Learning
22-
- [ ] Deep Learning
23-
- [x] Quantum Computing
17+
The course starts with setting up Python with a brief introduction to the ecosystem and the development environment in [*Module 01 - Getting Started*](./modules/m01-getting-started/README.md).
18+
Next, the basic data-types of python as well as looping and function representations are covered in [*Module 02 - Fundamentals of Python*](./modules/m02-fundamentals-of-python/README.md).
19+
[*Module 03 - Visualizing Data*](./modules/m03-visualizing-data/README.md) introduces the powerful library Matplotlib and [*Module 04 - Scientific Computing*](./modules/m04-scientific-computing/README.md) illustrates the working of numerical libraries Numpy and SciPy.
20+
Finally, usage-oriented practices that speed up and help in debugging are hinted in [*Module 05 - Best Practices*](./modules/m05-best-practices/README.md).
21+
The individual topics covered in this level are:
22+
23+
Topic ID | Topic Name | Tutorial | Notebook |
24+
--- | --- | --- | --- |
25+
M01T01 | Setting Up Python | [link](./modules/m01-getting-started/m01t01-setting-up-python.md) | |
26+
M01T02 | The Python Interpreter | [link](./modules/m01-getting-started/m01t02-the-python-interpreter.md) | |
27+
M01T03 | The Spyder IDE | [link](./modules/m01-getting-started/m01t03-the-spyder-ide.md) | |
28+
M01T04 | Jupyter Notebooks | [link](./modules/m01-getting-started/m01t04-jupyter-notebooks.md) | |
29+
M01T05 | Python in VSCode | [link](./modules/m01-getting-started/m01t05-python-in-vscode.md) | |
30+
M02T01 | Constants and Variables | | |
31+
M02T02 | Tuples and Lists | | |
32+
M02T03 | Dictionaries and Sets | | |
33+
M02T04 | Strings and Formatting | | |
34+
M02T05 | Conditional Statements | | |
35+
M02T06 | For and While Loops | | |
36+
M02T07 | List Comprehension | | |
37+
M02T08 | Functions and Lambda Expressions | | |
38+
M03T01 | Matplotlib | | |
39+
M04T01 | Numpy | | |
40+
M04T02 | SciPy | | |
41+
M05T01 | Importing Modules | | |
42+
M05T02 | Logging Events | | |
43+
44+
## Intermediate-level Topics
45+
---
46+
47+
With the basics covered, the course jumps into a few more plotting and computational libraries in [*Module 03 - Visualizing Data*](./modules/m03-visualizing-data/README.md) and [*Module 04 - Scientific Computing*](./modules/m04-scientific-computing/README.md).
48+
Next, [*Module 05 - Best Practices*](./modules/m05-best-practices/README.md) introduces object-oriented programming, exception handling and ways to parallelize the code.
49+
[*Module 06 - Machine Learning*](./modules/m06-machine-learning/README.md) and [*Module 08 - Quantum Computing*](./modules/m08-quantum-computing/README.md)then highlights two rapidly growing areas, introducing crude learning paradigms and concepts pertaning to quantum computing.
50+
The individual topics covered in this level are:
51+
52+
Topic ID | Topic Name | Tutorial | Notebook |
53+
--- | --- | --- | --- |
54+
M03T02 | Plotly | | |
55+
M03T03 | Seaborn | | |
56+
M04T03 | Pandas | | |
57+
M04T04 | SymPy | | |
58+
M05T03 | Objects and Classes | | |
59+
M05T04 | Handling Scenarios | | |
60+
M05T05 | Parallelism | | |
61+
M06T01 | Bayesian Probability | | |
62+
M06T02 | Regression Analysis | | |
63+
M06T03 | Classification | | |
64+
M06T04 | Clustering | | |
65+
M06T05 | Dimensionality Reduction | | |
66+
M06T06 | Support Vector Machines | | |
67+
M08T01 | CBits to QBits | [link](./modules/m08-quantum-computing/m08t01-cbits-to-qbits.md) | |
68+
M08T02 | Circuits and Gates | | |
69+
M08T03 | Measurements | | |
70+
M08T04 | Algorithms | | |
71+
M08T05 | The Qiskit SDK | [link](./modules/m08-quantum-computing/m08t05-the-qiskit-sdk.md) | [link](./modules/m08-quantum-computing/m08t05-the-qiskit-sdk.ipynb) |
72+
73+
## Advanced-level topics
74+
---
75+
76+
With all the stages set, the course dives into deep learning in [*Module 07 - Deep Learning*](./modules/m07-deep-learning/README.md) and further engrossing topics in [*Module 08 - Quantum Computing*](./modules/m08-quantum-computing/README.md) and [*Module 09 - Quantum ML*](./modules/m09-quantum-ml/README.md).
77+
The individual topics covered in this level are:
78+
79+
Topic ID | Topic Name | Tutorial | Notebook |
80+
--- | --- | --- | --- |
81+
M07T01 | Neural Networks | | |
82+
M07T02 | TensorFlow and Keras | | |
83+
M07T03 | Principal Component Analysis | | |
84+
M07T04 | Feedforward Neural Networks | | |
85+
M07T05 | Recurrent Neural Networks | | |
86+
M07T06 | Boltzmann Machines and Autoencoders | | |
87+
M07T07 | Reinforcement Learning | | |
88+
M08T06 | Grover's Algorithm | | [link](./modules/m08-quantum-computing/m08t06-algorithm-grover.ipynb) |
89+
M09T01 | Quantum Machine Learning | | |
90+
M09T02 | Quantum Generative Adversarial Networks | | |

modules/README.md

Lines changed: 30 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Modules - Python for Physicists
22

3-
## [Module 01 - Getting Started](./m01-getting-started/)
3+
## [Module 01 - Getting Started](./m01-getting-started/README.md)
4+
---
45

56
### Contents
67

@@ -18,7 +19,8 @@ M01T05 | Python in VSCode | [link](./m01-getting-started/m01t05-python-in-vscode
1819
* Running Python scripts and IPython notebooks.
1920
* Using Visual Studio Code to run and debug.
2021

21-
## [Module 02 - Fundamentals of Python](./m02-fundamentals-of-python/)
22+
## [Module 02 - Fundamentals of Python](./m02-fundamentals-of-python/README.md)
23+
---
2224

2325
### Contents
2426

@@ -33,7 +35,8 @@ M02T06 | For and While Loops | | |
3335
M02T07 | List Comprehension | | |
3436
M02T08 | Functions and Lambda Expressions | | |
3537

36-
## [Module 03 - Visualizing Data](./m03-visualizing-data/)
38+
## [Module 03 - Visualizing Data](./m03-visualizing-data/README.md)
39+
---
3740

3841
### Contents
3942

@@ -43,7 +46,8 @@ M03T01 | Matplotlib | | |
4346
M03T02 | Plotly | | |
4447
M03T03 | Seaborn | | |
4548

46-
## [Module 04 - Scientific Computing](./m04-scientific-computing/)
49+
## [Module 04 - Scientific Computing](./m04-scientific-computing/README.md)
50+
---
4751

4852
### Contents
4953

@@ -54,19 +58,21 @@ M04T02 | SciPy | | |
5458
M04T03 | Pandas | | |
5559
M04T04 | SymPy | | |
5660

57-
## [Module 05 - Best Practices](./m05-best-practices/)
61+
## [Module 05 - Best Practices](./m05-best-practices/README.md)
62+
---
5863

5964
### Contents
6065

6166
Topic ID | Topic Name | Tutorial | Notebook |
6267
--- | --- | --- | --- |
6368
M05T01 | Importing Modules | | |
64-
M05T02 | Objects and Classes | | |
65-
M05T03 | Handling Scenarios | | |
66-
M05T04 | Logging Events | | |
69+
M05T02 | Logging Events | | |
70+
M05T03 | Objects and Classes | | |
71+
M05T04 | Handling Scenarios | | |
6772
M05T05 | Parallelism | | |
6873

69-
## [Module 06 - Machine Learning](./m06-machine-learning/)
74+
## [Module 06 - Machine Learning](./m06-machine-learning/README.md)
75+
---
7076

7177
### Contents
7278

@@ -78,9 +84,9 @@ M06T03 | Classification | | |
7884
M06T04 | Clustering | | |
7985
M06T05 | Dimensionality Reduction | | |
8086
M06T06 | Support Vector Machines | | |
81-
M06T07 | Quantum Machine Learning | | |
8287

83-
## [Module 07 - Deep Learning](./m07-deep-learning/)
88+
## [Module 07 - Deep Learning](./m07-deep-learning/README.md)
89+
---
8490

8591
### Contents
8692

@@ -93,13 +99,9 @@ M07T04 | Feedforward Neural Networks | | |
9399
M07T05 | Recurrent Neural Networks | | |
94100
M07T06 | Boltzmann Machines and Autoencoders | | |
95101
M07T07 | Reinforcement Learning | | |
96-
M07T08 | Quantum Generative Adversarial Networks | | |
97102

98-
### Key Takeaways
99-
100-
* Modelling neural networks.
101-
102-
## [Module 08 - Quantum Computing](./m08-quantum-computing/)
103+
## [Module 08 - Quantum Computing](./m08-quantum-computing/README.md)
104+
---
103105

104106
### Contents
105107

@@ -117,3 +119,14 @@ M08T06 | Grover's Algorithm | | [link](./m08-quantum-computing/m08t06-algorithm-
117119
* Building quantum circuits and implementing quantum algorithms.
118120
* Executing quantum circuits on IBM's prototype quantum computers.
119121

122+
## [Module 09 - Quantum ML](./m09-quantum-ml/README.md)
123+
---
124+
125+
### Contents
126+
127+
Topic ID | Topic Name | Tutorial | Notebook |
128+
--- | --- | --- | --- |
129+
M09T01 | Quantum Machine Learning | | |
130+
M09T02 | Quantum Generative Adversarial Networks | | |
131+
132+

modules/m01-getting-started/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
> Stepping into a dark room? Let's take it one step at a time!
44
55
## Tutorials
6+
---
67

78
### [M01T01 - Setting Up Python](./m01t01-setting-up-python.md)
89

@@ -16,4 +17,4 @@ This tutorial walks through the minimal steps required to install Python via the
1617

1718
### [M01T05 - Python in VSCode](./m01t04-python-in-vscode.md)
1819

19-
[\[Next\] Module 02 - Fundamentals of Python →](../m02-fundamentals-of-python/)
20+
[\[Next\] Module 02 - Fundamentals of Python →](../m02-fundamentals-of-python/README.md)

modules/m01-getting-started/m01t01-setting-up-python.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ Each of them use their own package managers (`pip` and `conda` respectively) to
88
Due to some advantages (package dependency analysis and math kernel optimization libraries) of the Anaconda distribution over the official Python one, by default, we will be using the Anaconda distribution unless specifically mentioned otherwise.
99

1010
## Installing the Anaconda Individual Edition
11+
---
1112
![Conda](https://img.shields.io/conda/vn/conda-forge/conda?label=version&style=flat-square)
1213
![Conda](https://img.shields.io/conda/dn/conda-forge/conda?style=flat-square)
1314

@@ -46,6 +47,7 @@ bash path/to/downloaded/file.sh
4647
***Installing and initializing conda will override the default `python` command in the terminal with Anaconda's version of Python.***
4748

4849
## Initializing the conda Environment
50+
---
4951

5052
*conda-forge* is a community-driven packaging system for conda dedicated for the scientific computing community. It provides a wide collection of recipies, build infrastructure and distributions.
5153
To add it as the first-hit channel, open the Anaconda command prompt in the elevated (administrator) mode and execute the following lines:
@@ -76,6 +78,7 @@ Python 3.x.x
7678
*In Linux systems, the initialization scripts for `conda` are available inside the `$HOME/.bashrc` file.*
7779

7880
## Creating Python Environments
81+
---
7982

8083
It is useful to create individual virtual environments to run different versions of Python depending on the requirements of specific packages.
8184
And the `conda` package provides an easy way to manage such virtual environments.
@@ -99,6 +102,7 @@ conda env remove --name py38
99102
```
100103

101104
## Managing Anaconda Packages
105+
---
102106

103107
To install a package, use the following command by replacing `package` with its name and `version` with its requied version:
104108

modules/m01-getting-started/m01t02-the-python-interpreter.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,13 @@
55
[← \[Previous\] M01T01 - Setting Up Python](./m01t01-setting-up-python.md)
66

77
## Using the Interactive Mode
8+
---
89

910
Access the Python interpreter in the *interactive mode* by running `python` in the command line.
1011
A welcome message containing the version, current date and time, and a line of default commands will be displayed, followd by a *primary prompt* (`>>>`) in the final line as below:
1112

1213
```bash
13-
Python 3.7.6 | packaged by conda-forge | (default, Mar 23 2020, 22:22:21) [MSC v.1916 64 bit (AMD64)] on win32
14+
Python 3.8.12 (default, Oct 12 2021, 03:01:40) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
1415
Type "help", "copyright", "credits" or "license" for more information.
1516
>>>
1617
```

modules/m01-getting-started/m01t05-python-in-vscode.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@
55
[← \[Previous\] M01T04 - Jupyter Notebooks](./m01t04-jupyter-notebooks.md)
66

77
## Installing Visual Studio Code
8+
---
89

910
[![GitHub package.json version](https://img.shields.io/github/package-json/v/Microsoft/vscode?style=flat-square)](https://github.com/microsoft/vscode)
1011

1112
*Visual Studio Code* (VSCode) is an open-source, highly-customizable and versatile source-code editor developed by Microsoft which supports debugging, version control, syntax highlighting, intelligent code completion, snippets, and code refactoring.
1213
Download the appropriate setup file for your operating system (Windows/Linux/MacOSX) from the [official page](https://code.visualstudio.com/download) and install. Easy!
1314

1415
## Installing Microsoft's Python Extension of VSCode
16+
---
1517

1618
[![GitHub package.json version](https://img.shields.io/visual-studio-marketplace/v/ms-python.python?style=flat-square)](https://github.com/microsoft/vscode)
1719
[![GitHub package.json version](https://img.shields.io/visual-studio-marketplace/i/ms-python.python?style=flat-square)](https://github.com/microsoft/vscode)

modules/m02-fundamentals-of-python/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
> Coming soon...
44
5-
[← \[Previous\] Module 01 - Getting Started](../m01-getting-started/)
5+
[← \[Previous\] Module 01 - Getting Started](../m01-getting-started/README.md)
66

7-
[\[Next\] Module 03 - Visualizing Data →](../m03-visualizing-data/)
7+
[\[Next\] Module 03 - Visualizing Data →](../m03-visualizing-data/README.md)

modules/m03-visualizing-data/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
> Coming soon...
44
5-
[← \[Previous\] Module 02 - Fundamentals of Python](../m02-fundamentals-of-python/)
5+
[← \[Previous\] Module 02 - Fundamentals of Python](../m02-fundamentals-of-python/README.md)
66

7-
[\[Next\] Module 04 - Scientific Computing →](../m04-scientific-computing/)
7+
[\[Next\] Module 04 - Scientific Computing →](../m04-scientific-computing/README.md)

modules/m04-scientific-computing/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33
> Coming soon...
44
5-
[← \[Previous\] Module 03 - Visualizing Data](../m03-visualizing-data/)
5+
[← \[Previous\] Module 03 - Visualizing Data](../m03-visualizing-data/README.md)
66

7-
[\[Next\] Module 05 - Best Practices →](../m05-best-practices/)
7+
[\[Next\] Module 05 - Best Practices →](../m05-best-practices/README.md)
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# M04T03 - Pandas
2+
3+
[![Anaconda Latest Release](https://anaconda.org/conda-forge/pandas/badges/version.svg)](https://anaconda.org/anaconda/pandas/)
4+
5+
> Shooting towards Data Science!
6+
7+
[`pandas`](https://pandas.pydata.org/) is an open-source Python library that offers analytical tools for datasets to import, clean and process them quickly.
8+
Originally written in 2008, the name is arguably derived from *Panel Data*, or according to some, *Python Data Analysis Library*.
9+
Its primary advantages include:
10+
11+
* Extremely streamlined for representing and interpreting of large data.
12+
* Functions to calculate statistical measures, and to clean or filter data.
13+
* Supports Python's native data types as well as NumPy's data arrays.
14+
* Import from and export to CSV, XLS, HTML, JSON, SQL databases.
15+
16+
## Getting Started
17+
---
18+
19+
`pandas` comes with the `anaconda` distribution and relevant commands to set it up can be found in the [package page](https://anaconda.org/anaconda/pandas/).
20+
It primarily works with data tables containing `DataFrame` objects.

0 commit comments

Comments
 (0)