Python Foundations: 3-Day Intensive Core Training Class

This 3-day intensive Python training class provides practical, hands-on experience and foundational working knowledge of Python for data analysis, science, engineering, and other technical applications. Whether you are new to Python or a long-time enthusiast, you'll benefit from this focused series of topics and best practices taught by experts who create Python software for notable companies in finance, oil and gas, scientific research, aerospace, biotechnology, marketing analysis and more.

Class Overview

The Python Foundations Core Class will get you up to speed quickly on how to optimize your use of the Python standard language and key Python packages for data exploration, modeling, and analysis. You’ll leave with:

  • Hands-on experience setting up a fully functioning integrated analysis environment and popular Python tools for scientific and numeric computing
  • An understanding of how to use the Python standard library to write programs, access various tools, and document and automate analytic processes
  • Orientation to some of the most powerful and popular Python libraries for modeling and analysis, including Pandas (data preparation, analysis, and modeling; time series analysis), NumPy (fast numerical computing), and matplotlib (data visualization)

What You'll Learn

The class will give you the initial building blocks to effectively use Python in your daily work, while setting the foundation for additional skill building in areas of specific interest.

Duration and Format: 3 days intensive live classroom training (with heavy emphasis on hands-on exercises) + 30-day free access to additional self-paced online training with Enthought Training on Demand. Live classes are limited to a maximum of 15 students to allow for dedicated interaction with the instructor.

Course Syllabus

I. Python Infrastructure and Development Tools

Building a Solid Infrastructure to Go From Exploratory Analysis to
Reproducible Workflows

We kick off the class by exploring the functionality of the IPython Shell, an enhanced interactive science-centric console. Next we review the Jupyter Notebook, a cell-based environment that renders scripts, plots, and rich media in a web-like interface, making it ideal for sharing and publishing analysis with peers. You'll leave with a mastery of these tools that will accelerate your productivity and facilitate collaboration.

  • IPython Shell
  • Custom environment settings
  • Jupyter (IPython) Notebooks
  • Script editor
  • Packages: NumPy, Pandas, matplotlib, etc.
  • Training on Demand

II. Python Language Essentials

Using Python to Control and Document Your Workflow

Next we move into an introduction to Python’s core language features that form part of your universal toolkit for tasks ranging from initial data exploration to extensible application development. We'll introduce Python's built-in data structures, including how and where each might be used and what trade-offs are present, and we’ll cover Python’s looping and control flow constructs. Along the way we’ll provide insight into Python’s design choices that will help you understand why Python works the way it does.

  • Data types and objects
  • Loading packages, namespaces
  • Reading and writing data
  • Simple plotting
  • Control flow
  • Debugging
  • Code profiling

III. Python's Scientific and Analytic Toolkits

Numerical Analysis, Data Exploration, and Data Visualization with
NumPy Arrays and Matplotlib

There are a number of "must-have" packages for scientific computing and data analysis with Python. We'll review three of these in this class that will give you the underpinnings you need to be able to expand your knowledge into additional packages that fit your area of specialization. If you are coming from a background in MATLAB®* or R, you'll find these libraries essential.

Chief among these packages is NumPy, a tool for rapidly manipulating and processing large data sets. Whether you are a scientist writing short scripts to analyze and plot your analytical results or an analyst writing large-scale quantitative finance applications for Wall Street, NumPy should be part of your toolbox. We give you a jump start with the basics in the classroom, then provide you additional curated lectures to extend your understanding.

  • The NumPy array
  • Indexing and slicing arrays
  • Array operations and manipulations
  • 2D plotting with matplotlib

Once you've crunched your data, you'll want to visualize it, which is where matplotlib comes in. Matplotlib is a versatile 2D plotting library that allows you to generate plots, histograms, power spectra, bar charts, error charts, scatter plots, and more with just a few lines of code.


Data Wrangling, Exploration, and Analysis with Pandas

Finally, we do a deep dive into the Python Data Analysis Library (Pandas), a powerful package for working with multi-dimensional datasets. Pandas' powerful data aggregation and reorganization capabilities, including support for labeling data along each dimension, missing values, and time series manipulations, have made Python an indispensable tool for data exploration and analysis.

  • 1D and 2D data structures: Series and DataFrame
  • Pandas I/O
  • Data visualization
  • Data manipulation (alignment, aggregation, and summarization)
  • Statistical analysis with Pandas
  • Date and time series analysis with Pandas

IV. Additional Topics Included for Self-Paced Learning

Topics Include (via Enthought Training on Demand):

SciPy: Python's Scientific Computing Ecosystem

This course provides an introduction to performing scientific computations in Python using high-level packages like SciPy, NumPy, and SymPy.

  • Optimization
  • Statistics
  • Interpolation
  • Integration
  • ODE solving
  • Functional curve fitting

Object-Oriented Programming in Python

This course covers object-oriented programming (OOP) in Python, with a focus on what you need to know for scientific applications. With an example-driven approach and lots of exercises, we cover OOP from the ground up to enable you to create your own custom data types (classes).

  • Python's object model
  • The basics of inheritance
  • Python's notion of public and private
  • Class interface design

Interfacing Python with Other Languages

This course will show you how to interface Python with code written in other languages, allowing you to complement the strengths of Python with the speed and performance of C, C++, and FORTRAN.

  • Extension modules
  • Cython (C-Extensions for Python)
  • ctypes

Advanced Python

This course covers a number of useful Python tools and concepts that aren't necessary for getting started with the language, but are really valuable as your skills and needs progress.

  • Iterators
  • Generators
  • Decorators
  • Regular expressions
  • Accessing databases
  • Advanced file I/O

* MATLAB is a registered trademark of The MathWorks, Inc.

Python Core Foundations: 3-Day Live Class Schedule

For inquiries or to register call 512.536.1057


Houston, TX
May 8-10, 2017
$1700
Albuquerque, NM
May 15-17, 2017
$1700
Los Angeles, CA
Jun 5-7, 2017
Austin, TX
Jun 12-14, 2017
San Jose, CA
Jul 17-19, 2017
Albuquerque, NM
Jul 17-19, 2017
$1700
Los Alamos, NM
Jul 24-26, 2017
$1700

Discounts available for 3+ attendees; corporate training options are also available. Contact us or call 512.536.1057 for more information.

A 20% discount is available for academics at a degree-granting institution. Contact us at 512.536.1057 to register.

Prerequisites

Experience with Python is helpful (but not required). However, programming experience in some language (such as R, MATLAB, SAS, Mathematica, Java, C, C++, VB, or FORTRAN) is expected. In particular, participants need to be comfortable with general programming concepts like variables, loops, and functions. Please contact us here or at (512) 536-1057 with any questions.

Python Training on Demand

Participants will receive 30 days of Enthought Training on Demand Python Foundations Series access as part of the course

Questions or want to reserve a seat in an upcoming class?

Call 512.536.1057 or fill out the
form below.