Skip to main content
Back to top
Ctrl
+
K
Advanced Python for science
About this training
Preliminaries
About setting up a computer for scientific computing
Notes for Windows users
Notes for macOS users
Notes for Linux and WSL users
Python
Conda ecosystem
Editors/IDE
Versioning tools
Clone the repo of this training
Appetizer with JupyterLite
First steps pure Python: function calls
First steps pure Python: objects, types and variables
First usage of Python libraries
Generalities on Python
Get and use the repository of this training
Main characteristics
Python limitations
Different ways to use Python
Tools to develop Python code
Basic Pure Python
Simple types, variables
Strings, bytes and immutability
Conditions (
if
and
match
)
Lists and tuples
Loops (while and for)
Exceptions and traceback
Read / write files
More data structures
Structure and reuse code
Functions (very basic)
Testing
Practice: Read corrupted files
Modules, packages and imports
Classes and objects
The standard library
Documentation
Back to functions (less basics)
Use, make & share Python software
Introduction: PyPI and friends
Conda & the conda-forge project
Global installation of Python apps
Using Third-party libraries
Modern Python packaging
Scientific Python (basics)
Python scientific ecosystem
Introduction to Numpy and the Python Array API standard
NumPy efficiency
Creation of Numpy arrays
Manipulating NumPy arrays
Introduction to Matplotlib and alternatives
Introduction to Pandas and alternatives
Recommended file formats
HDF5 and NetCDF files
Software engineering
Versioning
Continuous integration
Documentation
Debugging
Gradual typing
Intermediate pure Python
Decorators
OOP and magic methods
Generators
OOP and heritage
Define context managers
Performance optimization
Generalities on optimization in sequential
Profiling
Other languages and wrapping
Wrapping C and C++
Wrapping Rust
Wrapping Fortran
Parallelism
Threading
Concurrency
Multiprocessing
MPI and mpi4py
Tools for Python HPC
Cython
Pythran
Numba
JAX
Codon
Application on numerical kernels
NBody
DTW
A bit of Web
Native Python applications
GPU
Databases
Future & science fiction
Subinterpreters
Free Threading Python
Faster CPython and CPython JIT
HPy
Todo list
Repository
Open issue
.md
.pdf
Databases
Databases
#
Interface with SQL and No-SQL databases