TTPS4874: Applied Python for Data Science & Engineering
About this Course
Geared for scientists and engineers with limited practical programming background or experience, Applied Python for Data Science & Engineering is a hands-on introductory-level course that provides you with a ramp-up to using Python for scientific and mathematical computing. Working in a hands-on learning environment, you’ll learn basic Python scripting skills and concepts, as well as the most important Python modules for working with data, from arrays, to statistics, to plotting results. You’ll get to practice useful, relevant skills in a lab focused environment, guided by our expert instructional team who will explain how to apply these skills on the job.
Audience Profile
This course is geared for data analysts, developers, engineers or anyone tasked with utilizing Python for data analytics tasks.
At Course Completion
This skills-focused course combines expert instructor-led discussions with practical hands-on labs that emphasize useful, current techniques, best practices and standards. Working in this hands-on lab environment, guided by our expert practitioner, you’ll learn about and explore:
· Learn essentials Python scripting methods 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, JSON, and CSV
· Manipulate arrays with NumPy
· Get a grasp of the diversity of subpackages that make up SciPy
· Use Series and Dataframes with Pandas
· Use Jupyter notebooks for ad hoc calculations, plots, and what-if?
Outline
1. The Python Environment
· About Python
· Starting Python
· Using the interpreter
· Running a Python script
· Python scripts on Unix/Windows
· Using the Spyder editor
2. Getting Started
· Using variables
· Builtin functions
· Strings
· Numbers
· Converting among types
· Writing to the screen
· String formatting
· Command line parameters
3. Flow Control
· About flow control
· White space
· Conditional expressions (if,else)
· Relational and Boolean operators
· While loops
· Alternate loop exits
4. Array Types
· About sequences
· Lists
· Tuples
· Indexing and slicing
· Iterating through a sequence
· Using enumerate()
· Functions for all sequences
· Keywords and operators for all sequences
· The range() function
· Nested sequences
· List comprehensions
· Generator expressions
5. Working with files
· File overview
· Opening a text file
· Reading a text file
· Writing to a text file
· Raw (binary) data
6. Dictionaries and Sets
· Creating dictionaries
· Iterating through a dictionary
· Creating sets
· Working with sets
7. Functions, modules, and packages
· Four types of function parameters
· Four levels of name scoping
· Single/multi dispatch
· Relative imports
· Using __init__ effectively
· Documentation best practices
8. Errors and Exception Handling
· Syntax errors
· Exceptions
· Using try/catch/else/finally
· Handling multiple exceptions
· Ignoring exceptions
9. Using the Standard Library
· The sys module
· Launching external programs
· Walking directory trees
· Grabbing web pages
· Sending e-mail
· Paths, directories, and filenames
· Dates and times
· Zipped archives
10. Pythonic Programming
· The Zen of Python
· Common idioms
· Named tuples
· Useful types from collections
· Sorting
· Lambda functions
· List comprehensions
· Generator expressions
· String formatting
11. Introduction to Python Classes
· Defining classes
· Constructors
· Instance methods and data
· Attributes
· Inheritance
· Multiple inheritance
12. Developer tools
· Program development
· Comments
· pylint
· Customizing pylint
· Using pyreverse
· The unittest module
· Fixtures
· Skipping tests
· Making a suite of tests
· Automated test discovery
· The Python debugger
· Starting debug mode
· Stepping through a program
· Setting breakpoints
· Profiling
· Benchmarking
13. Excel spreadsheets
· The openpyxl module
· Reading an existing spreadsheet
· Creating a spreadsheet from scratch
· Modifying an existing spreadsheet
· Setting Styles
14. Serializing Data
· Using ElementTree
· Creating a new XML document
· Parsing XML
· Finding by tags and XPath
· Parsing JSON into Python
· Parsing Python into JSON
· Working with CSV
15. iPython and Jupyter
· iPython features
· Using Jupyter notebooks
· Benchmarking
· External Commands
· Cells
· Sharing Notebooks
16. Introduction to NumPy
· NumPy basics
· Creating arrays
· Shapes
· Stacking
· Indexing and slicing
· Array creation shortcuts
· Matrices
· Data Types
17. Brief intro to SciPy
· What is SciPy?
· The Python science ecosystem
· How to use SciPy
· Getting Help
· SciPy subpackages
18. Intro to Pandas
· Pandas overview & architecture
· Series
· Dataframes
· Reading and writing data
· Data alignment and reshaping
· Basic indexing
· Broadcasting
· Removing Entries
· Timeseries
· Reading Data
19. Introduction to Matplotlib
· Overall architecture
· Plot terminology
· Kinds of plots
· Creating plots
· Exporting plots
· Using Matplotlib in Jupyter
· What else can you do?
Prerequisites
While there are no specific programming prerequisites, students should be comfortable working with files and folders and the command line. Prior scripting experience is helpful but not required.