WA3234

# Comprehensive NumPy and Pandas Training

This comprehensive NumPy and Pandas hands-on training course aims at removing obstacles between aspiring data practitioners and their next professional expertise milestone on their career path.

Course Details

3 days

### Prerequisites

Working knowledge of Python

### Target Audience

• Data Practitioners
• Software Engineers
• IT Architects

### Skills Gained

• Unlock the power and efficiencies of NumPy and pandas
• Learn the core and advanced features of both Python libraries
• Become comfortable in navigating the related APIs
Course Outline

## Chapter 1 - Comprehensive NumPy

• Doing the Labs and Hands-on Exercises
• NumPy
• The Python and C Connection
• NumPy Characteristics
• NumPy Efficiencies
• The ndarray Object vs Python Sequence
• The ndarray Data Structure Visually
• The First Take on NumPy Arrays and the array() Method
• Getting Help
• The np.info() Function
• The arange() Method
• Hands-on Exercises
• Re-Shaping, Take 1
• Re-Shaping with Order
• "Smart" Reshaping
• Hands-on Exercises
• Array Slicing
• Array Slicing Visually
• 2-D Array Slicing
• Slicing and Stepping Through
• Getting Last Row and Last Column
• Indexing with Arrays of Indices
• Hands-on Exercises
• Understanding NumPy Types
• Commonly Used Platform-Portable ndarray Numeric Data Types
• Other Data Types
• Unicode Strings
• Example of a Boolean Array
• Changing the Data Type using astype()
• Hands-on Exercises
• Commonly Used Array Metrics
• Example of Getting Common Array Metrics
• What is An ndarray Axis?
• Commonly Used Aggregate (Reduction) Functions
• Axis-Aware Aggregate Functions Visually
• The NaN Value
• The nan_to_num() Function
• NaN in Aggregate Functions
• The NaN-Tolerant Functions
• The inf Value
• The inf-Related Functions
• Checking for Valid Numbers in an ndarray
• Hands-on Exercises
• The newaxis Attribute
• Flattening the Matrices
• The ravel() Method
• Changing Order When Flattening with ravel()
• ravel(): Things to be Aware of ...
• The flatten() Method
• Flattening with reshape(-1)
• Flattening Using the [:,-1] Operator
• Hands-on Exercises
• Understaning Little-Endian and Big-Endian Byte Encodings
• Handling Little-Endian and Big-Endian Byte Encodings in NumPy
• Creating "Dummy" Arrays
• "Dummy" Arrays Visually
• The "Dummy-Like" Arrays
• Hands-on Exercises
• Generating Data Points with linspace()
• Building Coordinate Matrices with meshgrid()
• The view() Function
• The copy() Function
• The Issue of Shallow Copies of Python Lists
• The True "Deep Copy"
• Vectorization
• Vectorization Visually
• Hands-on Exercises
• Array Arithmetic Operations
• Filtering
• Hands-on Exercises
• The any() and all() Functions
• Combining Arrays
• Examples of Combining Arrays
• The append() Function
• Hands-on Exercises
• The insert() Function
• The delete() Function
• Hands-on Exercises
• I/O Operations
• Examples of I/O Operations
• I/O Operations Considerations
• Memory-Mapped Files
• Hands-on Exercises
• Using unique() and repeat()
• Sundry Functions
• Support for Generating Random Numbers
• Seeding
• The NumPy Random Generator's Methods
• Generating Random Numbers
• Distributions
• Drawing Samples from the Poisson Distribution
• The histogram() Function
• Example of Using histogram()
• Descriptive Statistics
• Hands-on Exercises
• Sorting Arrays
• Sorting Examples
• Understanding argsort()
• The argmin() and argmax() Functions
• Hands-on Exercises
• The vectorize() Function
• The Iterator Object
• Example of Using NumPy Iterator
• The Linear Algebra Functions
• Matrix Operations
• Matrix Operations (Cont'd)
• The Norm Concept
• Calculating the L2 Norm
• Hands-on Exercises
• Summary

## Chapter 2 - Comprehensive pandas

• Doing the Labs and Hands-on Exercises
• What is pandas?
• The Main Features and Capabilities
• The Core High-Level Data Structures
• The Series Object
• Understanding the View and Copy Aspects of the Input Data
• Example of a Series Object
• Accessing Values and Indexes in the Series Object
• The Index Property
• Using the Series Index as a Lookup Key
• Useful Series Methods
• The Series Object Supports NumPy Array Operations
• Can I Pack a Python Dictionary into a Series?
• Hands-on Exercises
• The DataFrame Object
• The DataFrame's Value Proposition
• Creating a DataFrame
• Example of Creating a pandas DataFrame from a NumPy Array
• Creating a pandas DataFrame from a Python Dictionary
• Plugging In Your Own Index
• Example of Using Your Own Index
• Getting DataFrame Metrics
• Creating a Column with Auto-Incremented Values
• The DataFrame info() Method
• The describe() Method
• Example of a describe() Output when called on a DataFrame
• Example of a describe() Output when called on a Series
• Accessing DataFrame Columns
• Accessing DataFrame Rows
• Renaming DataFrame Columns
• Hands-on Exercises
• Accessing DataFrame Cells
• The iloc[] Property
• Examples of Using the iloc() DataFrame Method
• Using a Function in iloc
• The Type of Object iloc Returns
• The loc[] Property
• Examples of Using loc[]
• Hands-on Exercises
• Filtering in DataFrames
• Examples of DataFrame Filtering
• Using any() and all() with loc[]
• The filter() Method
• DataFrames are Mutable via Object Reference!
• Iterating over DataFrame's Contents
• Example of Iterating over DataFrame's Contents
• Hands-on Exercises
• The Axes
• Deleting Rows and Columns
• More on the drop() DataFrame Method
• Examples of Using the drop() Method
• Adding a New Column to a DataFrame
• Appending/Concatenating DataFrame and Series Objects
• The concat() Method
• Using the concat() Method
• Reindexing
• Re-indexing Series and DataFrames
• Joining DataFrames
• Understanding the get_dummies() DataFrame Method
• Example of Using the get_dummies() Method
• Hands-on Exercises
• What are Descriptive Statistics?
• Calculating Descriptive Statistics and Summary Measures in pandas
• Calculations Along axes
• Examples of Axis-Specific DataFrame Operations
• The nlargest() and nsmallest() Methods
• Hands-on Exercises
• Dealing with Missing Data
• Getting Information About the Missing Data (NaN)
• Dropping Rows/Column with NaNs
• The dropna() Function
• Examples of Using dropna()
• Interpolating Missing Data in pandas
• Examples of Interpolating Missing Data
• The fillna() Method
• Examples of Using fillna()
• Dropping Duplicate Rows
• The apply() Function
• Example of Using the apply() Function
• Hands-on Exercises
• Sorting DataFrame Values
• Hands-on Exercises
• The pandas I/O: Reading Methods
• The pandas I/O: Writing Methods
• Writing to a CSV File
• Writing to the System Clipboard
• Hands-on Exercises
• Minimizing DataFrames' Memory Footprint
• The Default Type Inferences
• Fine-Tuning Column Data Types
• What May Go Wrong with Converting Numbers
• Data Aggregation and Grouping in pandas
• Sample Data Set
• The pandas.core.groupby.SeriesGroupBy Object
• Grouping by Two or More Columns
• Emulating the SQL WHERE Clause
• The Pivot Tables
• Another Example of Data Pivoting
• Cross-Tabulation
• The cumsum() Method
• Hierarchical Indexing and MultiIndex Object
• Examples of Creating and Using a Hierarchical Index (MultiIndex)
• Data Aggregation Using a MultiIndex
• Hands-on Exercises
• Time Series Defined
• Handling Time Series Data
• Handling Time Series in pandas
• Example of Converting Text Timestamps into Datetime Objects
• Converting a Text Column Representing Dates
• Using the datetime Object as a DataFrame Index
• Generating Date Ranges
• Example of Using date_range()
• Hands-on Exercises
• Data Visualization
• Summary

## Lab Exercises

Lab 1. Learning the CoLab Jupyter Notebook Environment
Lab 2. Comprehensive NumPy
Lab 3. Comprehensive pandas