Python for Scientists Training in Tucson

Enroll in or hire us to teach our Python for Scientists class in Tucson, Arizona by calling us @303.377.6176. Like all HSG classes, Python for Scientists may be offered either onsite or via instructor led virtual training. Consider looking at our public training schedule to see if it is scheduled: Public Training Classes
Provided there are enough attendees, Python for Scientists may be taught at one of our local training facilities.
We offer private customized training for groups of 3 or more attendees.

Course Description

 
This is a 5 - day course that provides a ramp - up to using Python for scientific and mathematical computing. Starting with the basics, it progresses to the most important Python modules for working with data, from arrays, to statistics, to plotting result s. The material is geared towards scientists and engineers. This is an intense, hands - on, programming class. All concepts are reinforced by informal practice during the lecture followed by lab exercises. Many labs build on earlier labs which helps student s retain the earlier material. Python for Programming is a practical introduction to a working programming language, not an academic overview of syntax and grammar. Students will immediately be able to use Python to complete tasks in the real world.
Course Length: 5 Days
Course Tuition: $2090 (US)

Prerequisites

Students should be comfortable working with files and folders, and should not be afraid o f the command line in Linux, Windows, or MacOS.

Course Outline

 

The Python Environment
Starting
Python
If the interpreter is not in your PATHs
Using the interpreter
Trying a few commands
The help() function
Running a Python script
Python scripts on UNIX
Python editors and IDEs

Getting Started
Using variables
Keywors
Built-in functions
Strings
Single-quoted string literals
Triple-quoted string literals
Raw string literals
Unicode literals
String operators and expressions
Converting among types
Writing to the screen
String formatting
Legacy string formatting
Command line parameters
Reading from the keyboard

Flow Control
About flow control
What’s with the white space?
if andelif
Conditional expressions
Relational and Boolean operators
while loops
Alternateways to exit as loop

Lists and Tuples
About Sequences
Lists
Tuples
Indexing and slicing
Iterating through a sequence
Functions for all sequences
Using enumerate()
Operators and keywords for sequences
The xrange()function
Nested sequences
List comprehensions
Generator expressions

Working with Files
Text file I/O
Opening a text file
The with block
Reading a text file
Writing a text file
Python for Scientists
“Binary” (raw, or non-delimited) data

Dictionaries and Sets
About dictionaries
When to use dictionaries
Creating dictionaries
Getting dictionary values
Iterating through a dictionary
Reading file data into a dictionary
Counting with dictionaries
About sets
Creating sets
Working with sets

Functions
Defining a function
Function parameters
Global variables
Variable scope
Returning values

Exception Handling
Syntax errors
Exceptions
Handling exceptions with try
Handling multiple exceptions
Handling generic exceptions
Ignoring exceptions
Using else
Cleaning up with finally
Re-raising exceptions
Raising a new exception
The standard exception hierarchy

OS Services
The os module
Environment variables
Launching external processes
Paths, directories, and filenames
Walking directory trees
Dates and times
Sending email

Pythonic Idioms
The Zen of Python
Common Python idioms
Packing and unpacking
Lambda functions
List comprehensions
Generators vs. iterators
Generator expressions
String tricks

Modules and Packages
What is a module?
The import statement
Where did the.pyc file come from?
Module search path
Zipped libraries
Creating Modules
Packages
Module aliases
When the batteries aren’t included

Objectives
Defining classes
Instance objects
Instance attributes
Methods
__init__
Properties
Class data
Inheritance
Multiple Inheritance
Base classes
Special methods
Pseudo-private variables
Static methods

Developer Tools
Program development
Comments
pylint
Customizing pylint
Unit testing
The unittest module
Creating a test class
Establishing success or failure
Startup and Cleanup
Running the tests
The Python debugger
Starting debug mode
Stepping through a program
Setting breakpoints
Debugging command reference
Benchmarking

XML and JSON
About XML
Normal approaches to XML
Which module to use?
Getting started with ElementTree
How ElementTree works
Creating a new XML Document
Parsing an XML Document
Navigating the XML Document
Using XPath
Advanced XPath

iPython
About iPython
Features of iPython
Starting iPython
Tab completion
Magic commands
Benchmarking
External commands
Enhanced help
Notebooks

numpy
Python’s scientific stack
numpy overview
Creating arrays
Creating ranges
Working with arrays
Shapes
Slicing and indexing
Indexing with Booleans
Stacking
Iterating
Tricks with arrays
Matrices
Data types
numpy functions

scipy
About scipy
Polynomials
Vectorizing functions
Subpackages
Getting help
Weave

A Tour of scipy subpackages
cluster
constants
fftpack
integrate
interpolate
io
linalg
ndimage
odr
optimize
signal
sparse
spatial
special
stats

pandas
About
pandas
Pandas architecture
Series
DataFrames
Data Alignment
Index Objects
Basic Indexing
Broadcasting
Removing entries
Time series
Reading Data

matplotlib
About matplotlib
matplotlib architecture
matplotlib Terminology
matplotlib keeps state
What else can you do?

Python Imaging Library
The PIL
Supported image file types
The Image class
Reading and writing
Creating thumbnails
Coordinate system
Cropping an
d pasting
Rotating, resizing, and flipping
Enhancing

Course Directory [training on all levels]

Upcoming Classes
Gain insight and ideas from students with different perspectives and experiences.

Python Programming Uses & Stats

Python Programming is Used For:
Web Development Video Games Desktop GUI's Software Development
Difficulty
Popularity
Year Created
1991
Pros
Easy to Learn:
The learning curve is very mild and the language is versatile and fast to develop.
 
Massive Libraries:
You can find a library for basically anything: from web development, through game development, to machine learning.
 
Do More with Less Code:
You can build prototypes and test out  ideas much quicker in Python than in other language
Cons

Speed Limitations:

It is an interpretive language and therefore much slower than compiled languages.

Problems with Threading:

Multi-threaded CPU-bound programs may be slower than single-threaded ones do to the Global Interpreter Lock (GIL) that allows only one thread to execute at a time.

Weak on Mobile:

Although, there are a number or libraries that provide a way to develop for both Android and iOS using Python currently Android and iOS don’t support Python as an official programming language.

Python Programming Job Market
Average Salary
$107,000
Job Count
26,856
Top Job Locations

New York City

Mountain View

San Francisco

Complimentary Skills to have along with Python Programming
The potential for career growth, whether you are new to the industry or plan to expand your current skills, depends upon your interests:
  - For knowledge in building in PC or windows, phone apps or you are looking your future in Microsoft learn C#
  - For android apps and also cross platform apps then learn Java
  - If you are an Apple-holic and want to build iOS and MAC apps and then choose Objective C or Swift
  - Interested in game development? C++
  - Data mining or statistics then go with R programming or MATLAB
  - Building an operating systems? C

Interesting Reads Take a class with us and receive a book of your choosing for 50% off MSRP.