PYTHON ACADEMY
The Programming School

Python for Scientists and Engineers

Intended Audience

Scientists and Engineers with basic knowledge of Python. This course can be combined with introductory courses (see Recommended Module Combinations) to achieve appropriate Python skills.

Motivation

Many problems that scientists and engineers need to solve require some kind of programming. Python is getting increasing popular among this kind of users. One reason is the relatively little effort compared to the results. For people the only program occasionally Python is also a good choice. Even after a longer time without touching Python source it can still be read and understood with little effort.

Course Content

Overview of scientific and technical libraries for Python

There is a great variety of Python libraries for scientific purposes. A short overview is presented and selected example libraries are quickly introduced.

Numerical Calculations with numpy

The library numpy is the defacto standard for the work with arrays and linear algebra.

Array-Construction and Array-Properties

There are different ways to construct arrays with numpy. Using examples the most useful way a certain purpose is demonstrated. The properties if of array objects are explained.

Data Types

In contrast to Python data types that are determined dynamically at run time, data types of numpy arrays have to be explicitly specified. This is one requirement to achieve the speed advantages of numpy compared to pure Python. There are considerably more data types in numpy than in Python. The course covers the usage of those data types and especially the correspondence with C data types.

Slicing and Broadcasting

The technique of slicing allows read and write access to arbitrary parts of arrays. Since it works with multidimensional arrays it often allows for short and elegant programs without loops. Experience shows that the first steps with slicing need getting used to it. Therefore, numerous exercises are included in the course to cover different types of applications.

The so called broadcasting is applied in numpy if arrays with different shapes are used in computations. Missing parts of arrays are filled in if possible. A good understanding of this mechanism is a basic requirement for an effective work with numpy.

Universal Functions

numpy allows to apply many operations on whole arrays independent from their dimensions. Examples are use to demonstrate the usage of these universal functions.

Numerical Algebra

numpy provides basic functionality for solving problems in numerical algebra. Examples are used to show its usage.

Storage and Processing of Large Amounts of Data

Applications in scientific and engineering domain often have to deal with large amounts of data. There several ways to store data in Python. Some of them are presented in the course.

ASCII Files

The simplest way to store data is the use of ASCII files. It is shown how ASCII files can be read and written efficiently. Techniques for conversion of column based data in Python data structures are given.

Excel Files

Many data are stored in Excel files. Python offers several ways of reading and writing data in Excel files. Access via Microsoft’s COM interface are applied as well as direct binary reading and writing of files as an platform independent solution.

NetCDF Files

The file format NetCDF can be used to store large amounts of array data up to several terabytes. Python offers an interface for NetCDF. Its handling will be cover in course.

HDF Files

The HDF-Format is used for very similar purposes as the NetCDF-Format. There are plans to unite both formats with future releases. HDF stand for hierarchical data format and offers better opportunities to organized data. The module pyTables is an mature and comfortable interface to HDF. In course example for it are given.

Databases

Frequently, data are stored in databases. Python offers a uniform API for accessing all major databases. The use of this API is taught in the course.

Pickling and Shelving

Python offers ways to conveniently store Python objects with the built-in modules pickle and shelve. Complex data structures can be store on disk for later usage without the need to come up with a file format for storage. Application as well as advantages and disadvantages are presented in the course.

Objectoriented Programming for Scientific and Technical Projects

The object-oriented paradigm is currently prevailing in software engineering. Many scientist and engineers are more familiar with procedural programming. The course uses examples to show that object orientation can be advantageous also for typical scientific or engineering problems.

Graphical Presentation of Scientific Data

Results of scientific and technical calculations regularly need to be presented graphically. Even though there are many applications available an automated production of graphics can be especially useful if many graphics need to be produced or the same graphics needs to be frequently updated.

matplotlib

The library matplotlib provides many different types of diagrams from within Python with only few lines of code. Examples are used to exercise the use of this library.

MayaVi

Three-dimensional visualization and animation can be easily achieved with MayaVi. The standalone usage is taught in the course as well as the automation from within a Python program.

Application Integration with Python

Python is often termed "glue language" because it turns out to especially useful for the connection of heterogeneous applications. This features makes it especially attractive scientific and technical usage. Several different possibilities to connect very different applications into one uniform program are shown in the course.

Open Time for Solving Participant's Problems

The participants are ask before the course to provide task that need to be usually solved at work. Solution strategies with Python are attempted in the course.

Exercises

The participants can follow all steps directly on their computers. There are exercises at the end of each unit providing ample opportunity to apply the freshly learned knowledge.

Course Material

Every participant receives comprehensive printed materials that cover the whole course content as wells a CD with all source codes and used software.


Home
Python
Courses
Open Courses
Company Courses
Summer Course
Non-Programmers
Programmers
Scientists
Special Topics
Dates
Prices
FAQ
Training Center
User Group
Jobboard
Workshop
EuroSciPy
References
News


What customers say ...

Very good introduction to the programming language.

Matthias Enderle, freelancer programmer
more ...


News


Next Meeting of Leipzig Python User Group, June 10th, 2008
details ...


EuroSciPy July 26/27, 2008
details ...


Booth at Chemnitzer Linux-Tage
details ...


Videos Workshop 2007 available
details ...


Python is programming language of 2007
details ...


[Powered by rest2web]

[Python Powered]