Course PYT109
Scientific Computing and Quantitative Data Analysis Using Python
Scientific Computing and Quantitative Data Analysis Using Python
Duration: 5 Days
Synopsis
This course evolved from an adavanced Python programming course delivered to a group of very gifted atrophysicists. Out of a class of 7 5 had PhD's. This class is intended for the scientist or engineer ot quantitative data analysts interested in using Python in their work. After an intensive overview of Python and object oriented Python programming the course covers numeric data processing using NumPy arrays data visualisation using Matplotlib. This is followed by an investigation of advanced NumPy techniques using structured arrays and memory mapped arrays for processing large data sets. The next part of the course surveys the various scientific algorithms available in SciPy such as interpolation, integration, linear algebra, signal/image processing, optimization .... Finally techniques for interfaceing Python with other languages (C/C++/Fortran) are explored.
The quantitative data analysis sections of the course will include exercises in plotting and analysis of large data sets (e.g. astrophysics data sets, Dow Jones closing data). For those primarily interested in using Python for financial applications there will be exercises demonstrating using Python for e.g. calculating options pricing using Black-Scholes models and Monte Carlo simulation.
Prerequisites
- Delegates are expected to be experienced programmers (e.g. C, Fortran, R, Matlab) as well as being Programming experience in some language (C, VB, Fortran, Matlab) is expected. Knowledge of object oriented programming is helpful, thought not absolutely necessary. Knowledge of e.g. calculus, statistics, signal and image processing is useful, though, again, it is not necessary to be experienced in all of these topics
Publicly scheduled dates, locations, and prices
A schedule of dates for this subject is not currently available. Please call Ajay Patel on 02086471939 to enquire about places and availability.
Contents
Python and Intensive Introduction
- Interpreted vs. compiled programs
- Python as a "glue" language for accessing high-performance compiled code
- Python data types - strings, lists, dictionaries, files
- Python modules - creation, import and use in structured programming
- File I/O in Python
- Accessing database data in Python
- Features of the Python standard library
- Python object oriented programming
Numpy and Matplotlib
- Python's array processing limitations - rationale for NumPy
- NumPy arrays and array manipulation operations
- NumPy NDimensional array processing
- Array processing - vectorisation and implicit loops
- Slicing and dicing of large data sets
- "Structured" arrays
- Extracting and saving data to databases and data warehouses
- Plotting and visualising data using Matplotlib
SciPy and Extension Modules
- This part of the course is tailored to the specific requirements of the attendees e.g.
- Interpolation
- Curve fitting
- Optimisation
- Statistical analysis
- Modeling and simulation
- Implementing Extensions
- Overview of techniques for interfacing with other languages - SWIG, Cython, Weave, f2py
Interfacing with C/C++ and with Fortran
- This part of the course is tailored to the specific requirements of the attendees e.g.
- Intergrating with Fortran f2py
- Integrating with C/C++ - SWIG
- Inlining C/C++ code in Python modules - Weave
- Creating extension modules using Cython
- Using the NumPy C-API
- Calling shared libraries using ctypes
Tools and GUIs for Visualising Data
- Matplotlib
- gnuplot
- Mayavi
- Enthought's Traits
- Enthought's Chaco
