Numerical Analysis with NumPy¶
About¶
- Level: Beginner to Intermediate
- Lectures: 20 hours
- Self-study: 10 hours
- Exercises: 44
- Lines of Code to write: 160
- Format: e-learning + weekly online teleconference with instructor
- Language: English or Polish
Description¶
This practical course teaches numerical analysis and array-based programming in Python using NumPy as the foundational library. Following the syllabus, students will learn to create and manipulate arrays, perform vectorized arithmetic and matrix operations, work with polynomials and trigonometric functions, manage pseudorandomness, and import and export data in common formats. Labs cover performance topics such as micro-benchmarking, memory model and copying vs references, and techniques for working with datasets larger than available RAM, with exercises that apply NumPy together with SciPy, Jupyter, and tools like Xarray and Dask for scalable workflows.
Advantages¶
Participants gain hands-on skills to write faster, more reliable numerical code by mastering vectorized operations, memory-aware techniques, and profiling methods that reduce runtime and memory costs. Learners will be able to implement efficient numerical pipelines, speed up prototyping in Jupyter, produce reproducible analyses, and apply scalable approaches that translate directly to data-science and engineering projects.
Target Audience¶
- Data scientists and analysts who perform numerical computing and need efficient array-based workflows.
- Numerical analysts and researchers who implement algorithms and need to validate and profile implementations.
- Software engineers and developers building scientific or data-driven applications that require high-performance numerical code.
- Machine learning engineers who preprocess large datasets and optimize numeric pipelines for performance and scalability.
- Advanced students and learners seeking practical experience with NumPy, SciPy, Jupyter, and scalable tools like Xarray and Dask.
Format¶
The course is delivered as a blended learning experience, comprising numerous short videos that progressively introduce concepts and techniques through a series of practical examples. The course format combines e-learning modules with weekly online teleconferences with the instructor for Q&A, discussions, and code reviews.
During the self-study phase, students complete practical exercises that apply the learned techniques. Each exercise is designed to have 100% test coverage, allowing students to verify their solutions. Additionally, students will have access to a spreadsheet to track their progress.
Students will also receive downloadable resources, including code samples, exercise templates, and reference materials to support their learning journey. Since 2015, we have refined our materials based on student feedback to ensure clarity, engagement, and practical relevance. All code listings undergo automatic testing (over 28,000 tests) to ensure accuracy and reliability. All materials, code listings, exercises, and assignments are handcrafted by our trainers without the use of AI. All case studies and examples are based on real-world scenarios drawn from our extensive experience in software engineering.
Working language of the course is either English or Polish.
Course Outline¶
-
Libraries used in numerical analysis and Data Science:
- SciPy: introduction to the tools ecosystem
- Jupyter: installation, launching, usage, LaTeX, advanced options
- Markdown: brief introduction to syntax and capabilities
-
NumPy and numerical analysis:
- Built-in types and constants: array, poly1d, nan, inf
- Data import and export, serialization, merging, supported formats, binary and text files
- Defining arrays: creation, generation, dtype specification
- Pseudorandomness: concepts, seeding, sampling, shuffling
- Array attributes: data types, shape, size, memory footprint, axes
- Selection and iteration: indexing, slicing, fancy indexing
- Data operations: vectorized operations, universal functions, reshaping, flattening
- Data manipulation: rounding, clipping, inserting, filling, transposition, sorting
- Arithmetic: arithmetic and matrix operations, determinants
- Statistics: extrema, variance, standard deviation, means, modes, covariances, correlations
- Logic: operators, selection, masks, where
- Trigonometry: functions, conversions, constants
- Polynomials: coefficients, zeros, roots, polynomial fitting, arithmetic, derivatives, integrals
-
Performance-related topics:
- Micro-benchmarking
- Computational and memory complexity
- Memory: RAM architecture, copying vs references
- Techniques for working with data larger than available RAM
- Performance optimization tricks
- Scalability: Xarray, Dask
-
Case studies
Our Experience¶
AATC trainers have been teaching software engineering since 2015. We have already delivered over 11,000 (eleven thousand) hours of software engineering training to more than 32,000 (thirty-two thousand) students worldwide.
Requirements¶
- Basic knowledge of Python programming
- Familiarity with using an IDE (e.g., PyCharm, VSCode)
- Familiarity with using version control systems (e.g., Git)
- Basic understanding of AI-assisted coding tools (e.g., GitHub Copilot, ChatGPT)
Setup¶
- Newest version of Python
- IDE of your choice (e.g., PyCharm, VSCode)
- Git installed and configured
- GitHub account
- Web browser (e.g., Chrome, Firefox, Safari, etc.)
Apply¶
If you are interested in taking this course, please contact us at info@astronaut.center