About Us | [Public iPhone iPad Courses] | [Public Android Courses] | [Public Arduino Courses] | [Contact Us]

Statistics and Data Analysis

These courses are scheduled on demand.


Python based Numerical and Scientific Computing for Scientists, Engineers, and Quants

The kinds of problems that have to be solved in developing Quantitative Financial Trading applications, or running complex simulation models, or solving complex sets of differential equations involve not only the numerical analysis side but also various combinations of tasks such as organising, storing and retrieving large amounts of data, visualising the data as well as the results of data processing and data transformation, changing model parameters interactively. The implementation of all these software components by a small team of individuals is well nigh impossible. To be productive it is necessary to "bolt together" best of breed software and tools. These might have been developed in various languages e.g. C, C++, Java, Fortran, and, possible made use of various frameworks and APIs. Python is an excellent "glue" and "wrapper" language, and Python modules have been implemented that encapsulate a wide range of numerical analysis, data visualisation and data storage and retrieval technologies.

Scientific computing support for Python is based, to a large extent on the numpy and scipy packages. In addition, Enthought, a US company, has developed a number of tools for scientific computing that are collectively referred to as the "Enthought Tool Suite". These tools include

  • Traits - which adds traits capabilities to Python classes
  • Chaco - a 2D plotting kit
  • Kiva - a collection of primitives for path based rendering, affine transforms, alpha blending and other graphic tools
  • Mayavi - a 3D data visualisation tool kit based on VTK
  • Enable - an object oriented 2D drawing canvas
  • Envisage - a plugin application framework for developing scriptable extensions

Scipy data visualisation can also make use of Matplotlib - a widely used data plotting tool. The Scipy framework contains many modules for scientific computing including various numerical analysis tools, equation solvers, and wrappers around statistical data analysis tools such as R, and Computational Fluid Dynamics (CFD) tools such as Open Foam. Open Foam itself can be applied not only to fluid dynamics problems but also to quantitative finance applications as it includes a Black Scholes solver.

In addition scientific computing can encompass tools for building Python wrappers around C and C++ code such as SWIG, boost.python, pyrex, sip and ctypes, tools for developing interactive computing applications, such as IPython PyQt - for accessing Qt from Python Cython's C extensions for Python

Finally there are packages for handling large amounts of data, including I/O to large structured data files / data sets that conform to the HDF5 and NetCDF formats. These files can be the result of e.g. computational fluid dynamics runs, climate modeling simulations, and ecosystem modeling experiments. Large data sets are also associated with Geographic Information Systems (GIS) a key open source example of which is PostGIS which exploits the power of PostgreSQL and Python.

The expensive and widely used alternative to PostGIS, ARCGis also makes extensive use of Python, and provides its own data visualisation tools.

The courses listed here arose as a result of customers asking for specialised tailored courses. If you are looking for a specialised Quant or Scientific computing course that you have not been able to source, then, do contact us. We may be able to help.

Custom Courses

To meet more specific training needs, FTT can provide customised courses and workshops. These courses can be presented either at your own premises or at our facilities in Carshalton. Custom training can be cost-effective for groups as small as four. Please call us to discuss your requirements.

Click on the links below for HTML versions of the full course outlines
Crs Title Days Outline
SCI101 Foundations of Numerical and Scientific Computing in Python 3 HTML
SCI102 Advanced Data Visualisation using Python 2 HTML
SCI103 Interfacing Python with C and C++ 2 HTML
SCI104 Python Signal Processing using Numpy and Scipy 2 HTML