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
Duration
3 days
Prerequisites
Working knowledge of Python
Target Audience
- Data Practitioners
- Business Analysts
- 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
- Broadcasting
- Broadcasting 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
- Reading From CSV Files
- 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