Course SCI101
Numerical and Scientific Computing with Python
Numerical and Scientific Computing with Python
Duration: 3 Days
Synopsis
This course provides a fast paced introduction to numpy, scipy and matplotlib, PyTables, and use of NetCDF and HDF5 via Python.
Prerequisites
- Attendees are expected to be reasonably experienced Python programmers, and to be experienced programmers in some other programming language such as C, C++ or Fortran. Attendees are also assumed to have a background in numerical analysis, scientific computing, or computer modeling and simulation, and to have studied maths to the level covered in a degree level science or engineering course.
Course Outline
Intensive Overview of Python
Object Oriented Programming in Python
- Inheritance and Polymorphism
- Overview of OO Patterns and an Introduction to Patterns implementation in Python
Advanced Python programming topics
- Iterators and generators
- Functional programming in Python
- Decorators
- Parallelism and Python
Numpy
- NumPy types and builtins
- Arrays and Array Operations
- The array interface and array protocol
- Basic operations and manipulations on N-dimensional arrays
- NumPy types and builtins
- Using vectorization to process arrays with implicit loops
- Reading and writing arrays
- Indexing arrays by slicing
- Indexing arrays using more general indexes or masks
- Understanding the N-dimensional data structure
- Converting arrays
- Broadcasting array operations
- Structured arrays
Scipy
- ScipPy at the top level
- SciPy maths - an overview of what is supported
- Interpolation
- Integration
- Linear Algorithms
- Optimisation
- Sparse matrices
- Indexing arrays by slicing
- Indexing arrays using more general indexes or masks
- Understanding the N-dimensional data structure
- Converting arrays
- Broadcasting array operations
- Structured arrays
- SciPy - Statistics support
Input/Output and Scientific Computing
- SciPy basic I/O
- PyTables and HDF5
- Installing and using PyTables
- Python and NetCDF
- NetCDF and HDF5
Plotting and Graphics
- Matplotlib
- Configuration
- Simple plots
- Interactive plots
- 3D plots
- Graphics images
- Embedding matplotlib in GUI applications
