Enthought Home
Enthought Training

Python for Scientists and Engineers

Registration  |  General Course Information

This class is intended for the scientist or engineer interested in using Python for their day-to-day computational tasks. It begins with a day long introduction to the Python language focusing on the standard data structures, control constructs, and text/file processing. Object oriented development is briefly discussed. Day two introduces numeric data processing using NumPy arrays as well as visualizing data with 2D plots. Day three covers several advanced topics in NumPy such as structured arrays and memory mapped arrays for dealing with large data. This is followed by a survey of the scientific algorithms available in SciPy including interpolation, integration, linear algebra, signal/image processing, optimization, and others. The class concludes with an overview of how to interface Python with other languages (C/C++/Fortran).


Target Audience

The class is geared toward scientists and engineers that would like to learn how to use python in their day-to-day work. Practical data processing topics form the meat of the course, but some more involved development topics (UIs and interactive plots) are also covered. Programming experience in some language (C, VB, Fortran, Matlab) is expected. Experience with C, C++, and/or Fortran is useful for some topics. Object oriented programming skills are not necessary but will be helpful. Knowledge of calculus, statistics, signal and image processing, optimization, are all valuable but not absolutely required.


Course Topics

Day 1
8:30 am to 5:00 pm

Python

The first day is devoted to understanding how to think in Python. We start by demonstrating the IPython interactive environment and how it can be used for rapid application development. The pace of this day is determined by previous exposure to Python. Even experienced Python programmers report learning new ideas from the experts that teach this course.

  • Data-types (strings, lists, dictionaries, files)
  • Syntax and language structure
  • Creating and importing modules
  • Reading and writing files
  • Overview of the standard library
  • Introduction to object oriented programming

Day 2
8:30 am to 5:00 pm

NumPy

On the second day, the NumPy extension module to Python is exposed as a tool for rapidly manipulating and processing large data-sets.

  • Basic operations and manipulations on N-dimensional arrays
  • Understanding the N-dimensional data structure
  • Using vectorization to process arrays with implicit loops
  • Understanding slicing and broadcasting
  • Dealing with large data-sets
  • Working with "structured" arrays
  • Reading and writing data

Day 3
8:30 am to 5:00 pm

SciPy and extension modules

  • Overview of SciPy with examples chosen according to attendees' needs (interpolation, curve-fitting, optimization, etc.)
  • Interacting with other languages: Weave, Cython