Python Programming for Scientists, Engineers and Analysts Training Course – PYT400

This unique Python training course is specifically designed with scientists, engineers and analysts types in mind.  Our 5 day Python programming training for Scientists, Engineers and Analysts focuses specifically on the Python, NumPy, SciPy, SymPy, and other specific skills scientists, engineers, statisticians and mathematicians need.

Python Online Course Schedule For Scientists

Python Programming for Scientists, Engineers & Analysts – PYT400 – 5 Day ENROLL NOW - Individuals & Small GroupsRequest a Class Date

In our 5 day Python for Scientist, Engineers and Analyst training course focuses on specifically on the Python, NumPy, SciPy, SymPy, and other specific skill areas scientists, engineers, statisticians and mathematicians need to work with crunching data, manipulating arrays, performing statistical calculations, and plotting results.

Multi-Enrollment Discounts Available at Check-Out
Location Instructor-Led Online
September 21, 2015 - September 25, 2015
8:00 AM
Super Nova - Offer Ends: 08/14/15$1,995
Fire Starter - Offer Ends: 09/04/15$2,195
Last Chance - Offer Ends: 09/15/15$2,295

This is a hands-on python programming class where we will work with crunching data, manipulating arrays, performing statistical calculations, and plotting results. This is truly Python training for scientific computing.

Each training module is reinforced with informal practice and dedicated by lab exercises. Python for Scientist is offered as a live, instructor-led public or private online, onsite or classroom style instruction.

Since many of Firebox Training’s Python training courses are delivered on-site at our clients’ facilities for small groups, we can often tailor fit the course to meet specific learning objectives.

Many of our clients have multiple locations. So, we offer this course as a live, instructor-led online training course for small groups. Additionally the Python Programming Training for Scientist, Engineers and Analyst is available as live, online public classes for individuals. Remember our online courses work for those with multiple locations and time zones, while saving money on the instructor’s or students’ travel expenses.

Expected Outcomes of Python for Scientist Course

By the end of the course participants can expect to create and run basic programs, design and code modules and classes, implement and run unit tests, use benchmarks and profiling to speed up programs, process XML and JSON, Manipulate arrays with NumPy, gain a grasp of the diversity of subpackages that make up SciPy, use iPython notebooks for ad hoc calculations, plots and what-if?, manipulate images with PIL, and solve equations with SymPy.

Course ID: PYT400 Duration: 5 days

Audience: Open to all those that are new to the Python programming language, but have a need to use python to work with crunching data, manipulating arrays, performing statistical calculations, and plotting results.

Prerequisites: None. Introduction to Python topic are covered in the first three days of the class. Certainly previous object-oriented programming experience would be helpful, but not required.

Python Programming for Scientists Course Outline

Day 1
Introduction to Python

  • What is Python?
  • Python History and Versions
  • Documentation and Resources
  • Python Implementations
  • Getting Python
  • Getting Eclipse
  • Installing the PyDev Plugin
  • Python(x,y) – Python for Scientific Computing
  • Create a Test Spyder Project
  • Hands-on Lab Exercises

The Python Environment

  • Different Ways to Run Python
  • IDLE
  • The Python Shell (and IPython)
  • Double-Clicking to Execute Python
  • Running Python from Eclipse
  • Introduction to Debugging on Eclipse
  • Debugging – Stepping Through Code
  • Passing Command Line Arguments
  • Accessing Command Line Arguments
  • Hands-on Lab Exercises

Python Data Types

  • Identifiers
  • Naming Convensions
  • Keywords and Built-ins
  • The Garbage Collector
  • Strings
  • Unicode Strings
  • String Functions
  • Formatting Strings
  • Numbers
  • Capturing Input and Handling Data Conversion
  • Booleans
  • Data Structures: Sequences, Sets, and Dictionaries
  • Functions
  • Files
  • Classes
  • Checking Data Types
  • Hands-on Lab Exercises

Working with Data Structures

  • Sequences
  • Lists
  • List Operations
  • The range() and xrange() Functions
  • Tuples
  • Looping through Sequences
  • Slicing Sequences
  • Comparing Sequences
  • Dictionaries
  • Dictionary Operations
  • Sets
  • Complex Data Structures
  • Deep vs. Shallow Copy
  • Hands-on Lab Exercises

Working with Modules

  • What is a Module?
  • Importing Modules
  • Understanding the PYTHONPATH
  • __name__
  • Packages
  • Compiled Python Code
  • Python Standard Modules
  • dir() and help()
  • Finding and Installing Modules
  • Installing pip
  • Installing and Upgrading Modules with Pip
  • More pip Operations
  • Hands-on Lab Exercises

Day 2
Program Structure

  • Statements
  • Comments
  • Joining Lines
  • Indentation
  • Operators
  • Operator Precedence
  • If Statements
  • Evaluating Variables
  • While Loops
  • For Loops
  • Tuple Assignment with For Loops
  • Pass
  • And, Or, and Not
  • Hands-on Lab Exercises


  • Introduction to Functions
  • Function Parameters and Default Arguments
  • Positional vs. Named Notation
  • Passing by Value vs. Reference
  • Unpacking Positional Arguments
  • Unpacking Named Arguments
  • Overloading Functions
  • Returning Data from Functions
  • Function Variable Scope
  • Global, globals(), and locals()
  • Documentation Strings in Functions
  • Hands-on Lab Exercises

Exception Handling

  • Exception Handling with try…except
  • Else and Finally
  • Exception Class Inheritance Hierarchy
  • Handling Multiple Exceptions
  • Explicit Exception Raising
  • Re-raising Exceptions
  • Custom Exception Classes
  • Hands-on Lab Exercises

Built-in Functions and Modules

  • Built-in Functions
  • The Python Standard Library
  • The sys Module
  • The os Module
  • The Logging Module
  • Logging – Configuring the Output
  • Log Record Attributes
  • The datetime Module
  • Time
  • Time Formats
  • The sched Module
  • Hands-on Lab Exercises
Day 3
Working with Files

  • Reading from Files
  • Reading Lines from Files
  • Reading JSON from Files
  • Writing and Appending to Files
  • Using ‘with’ to Manage Resources
  • File Attributes
  • Hands-on Lab Exercises

Python Classes

  • Introduction to Object-Oriented Python
  • Creating Your First Class
  • Inheritance
  • Multiple Inheritance and Method Resolution Order
  • Accessing Attributes
  • Superclass Methods
  • Method Overloading
  • Class Attributes
  • Static and Class Methods
  • Hands-on Lab Exercises

Unit Testing

  • Introduction to Unit Testing
  • The unittest Module
  • Assertions
  • Test Suites
  • Hands-on Lab Exercises

Day 4
Introduction to Scientific Python

  • Introduction to Scientific Python (SciPy)
  • SciPy Distributions
  • SciPy Resources
  • Overview of iPython
  • Launching iPython
  • Common iPython Commands
  • Tab Completion
  • Magics
  • %run and %edit Magics
  • %paste and %cpaste
  • %reset and %xdel. Debugging
  • Command History and External Commands
  • iPython Notebook
  • Creating a Notebook
  • iPython Notebook Operations
  • Hands-on Lab Exercises


  • NumPy Basics
  • Working with ndarray
  • Creating Arrays
  • Shaping Arrays
  • Referencing Arrays
  • Printing Arrays
  • Copying Arrays
  • Performing Operations on Array
  • Example – Operations on Matrices
  • The numpy.random Modul
  • Aggregate Functions on Arrays
  • Universal Function
  • Universal Functions – Some Examples
  • Array Broadcasting
  • Working with Boolean Arrays
  • Slicing Arrays
  • Broadcasting with Slices
  • Iterating Over Arrays
  • Stacking Arrays
  • Splitting Arrays
  • Hands-on Lab Exercises


  • Introduction to the Pandas Module
  • Data Structures in pandas
  • Creating a Simple Series Data Structure
  • Series with Custom Labels
  • Index Objects
  • The dateTimeIndex Object
  • Slicing Series
  • More Series Operations
  • Data Frames
  • Constructing Data Frames
  • More DataFrame Constructors
  • Adding DataFrame Columns
  • Deleting and Inserting DataFrame Columns
  • Selecting from Data Frames – Quick Cheatsheet
  • Dataframe Addition and Subtraction
  • Boolean Operations
  • Transposing DataFrames
  • Reading Data from Sources
  • Hands-on Lab Exercises

Day 5

The scipy Submodules

  • Overview of SciPy Subpackages
  • Getting More Information
  • Polynomials
  • scipy.special
  • scipy.cluster
  • scipy.constants
  • Fast Fourier Transformations
  • Integration
  • Interpolation
  • IO
  • Linear Algebra
  • The ndimage Module
  • Optimize
  • Signal
  • Sparse
  • Spatial
  • Special
  • Stats
  • Weave
  • Hands-on Lab Exercises


  • Matplotlib Overview
  • Matplotlib Architecture
  • Basic Matplotlib Concepts
  • Creating a Simple Plot
  • Multiple Lines on a Plot
  • Line Properties
  • Multiple Plots
  • Hands-on Lab Exercises

The Imaging Library

  • Overview of the Imaging Library
  • Supported File Types
  • The Image Class
  • Creating Images
  • Drawing Text on Images
  • The Coordinate System
  • Creating Thumbnails
  • Cropping, Pasting, and Transposing Images
  • Hands-on Lab Exercises