A specialist 5-day course in Python for Scientists and Engineers.
Dates: Monday 15th - Friday 19th August 2016
Prerequisites: The course requires some familiarity with programming concepts.
Overview: By the end of the course, you will have all the knowledge you need to start programming competently in Python for scientific and engineering applications. You will know what's available with Python and best practices for writing Python code that is correct, clean, maintainable, efficient, and future-proof. You will have had experience with a range of important tools in Python for solving a broad range of problems involving scientific and engineering datasets, including creating beautiful plots, regression, analysing time series, constructing statistical models, and analysing and visualising geospatial data.
Format: The course is a mixture of hands-on exercises and instruction from experts. Places are strictly limited to ensure there is plenty of hands-on help available for the exercises.
Day 1: Python essentials
Day 1 covers the basics of using Python for general programming tasks, with a focus on scientific and engineering applications.
The syllabus is as follows:
- Why use Python? What’s possible? Python versus other languages
- How to install a complete Python environment (with plotting etc.)
- Python syntax and concepts
- Input and output of string and binary data
- The IPython shell and notebook for rapid prototyping
- Useful data structures, idioms, tricks
- Tour of the amazing standard library (including dates, CSV files, random sampling, handling compressed data)
Day 2: Real-world Python
Day 2 describes how to scale up from toy scripts to useful systems developed in Python with a focus on maintainability, robustness, and efficiency. It covers different levels of modularity, packaging, practical object-oriented program design in Python, unit testing and documentation, practical debugging tips, idioms and style guidelines, and the right ways to achieve code efficiency. The syllabus is:
- Classes and objects
- Generators, with applications to simulations
- Modularity and packaging
- Best practices for writing maintainable code; code design
- Python idioms and style
- Documenting and unit-testing Python code
- Exceptions, logging, and practical debugging strategies
- Efficient coding practices; tools for benchmarking and profiling
- How to write Python 2.x / 3.x-compatible code
Day 3: Basics of Scientific Computing with Python
Day 3 teaches the use of Python for scientific computing. It covers array and matrix manipulation, an overview of available scientific routines, and creating simple but beautiful 2D plots, with the packages NumPy, SciPy, and Matplotlib. The syllabus is:
- Introduction to numerical data manipulation with NumPy
- Tour of SciPy for scientific data manipulation, with fancy demos: optimization, statistics, clustering, interpolation, classification, signal processing (including image denoising), sparse matrices
- 2D plotting with Matplotlib
- Efficiency: Techniques for speeding up numerical Python code by 4x to 10,000x
Day 4: Handling and Presenting Scientific Data in Python
Day 4 introduces further practical tools and example algorithms for scientists and engineers working with different kinds of data. The syllabus is:
- Data analysis with Pandas
- Time-series analysis with Pandas
- Manipulating data from CSV, Excel, HDF5, NetCDF, and SQL databases
- Visualisation and statistical graphics with Pandas and Seaborn
- Interfacing Python with other programming languages: C/C++, Fortran, R (on request)
- Scaling up: introduction to parallel processing and big data
Day 5: Analysing Spatial Data in Python
Day 5 introduces practical tools for scientists and engineers working with geospatial data. The syllabus is:
- Introduction to spatial analysis in Python
- Reading spatial data with open-source tools (Rasterio, Fiona, QGIS, GDAL)
- Projections; vector analysis and the 'shapely' package
- Raster image analysis in Python: worked examples with SciPy and PIL
- Network analysis using NetworkX
- Advanced spatial analysis topics; processing large spatial datasets with supervised classification and point pattern analysis
When & Where
Expert Python training and consulting.
See our website: pythoncharmers.com.