# rougier/numpy-100

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/rougier-numpy-100).**

13,812 stars · 6,581 forks · Python · mit

## Links

- GitHub: https://github.com/rougier/numpy-100
- awesome-repositories: https://awesome-repositories.com/repository/rougier-numpy-100.md

## Topics

`binder` `exercises` `notebook` `numpy` `python`

## Description

This project is a curated collection of programming challenges designed to build proficiency in array-based numerical computing. It serves as a structured learning resource for developers to master the manipulation of multidimensional datasets and the execution of mathematical operations using standard data science tools.

The repository distinguishes itself through a series of hands-on exercises that cover the full spectrum of numerical workflows, including array initialization, vectorized arithmetic, and data transformation. By working through these tasks, users gain practical experience in handling irregular datasets, managing missing values, and performing statistical analysis, all while reinforcing their understanding of array properties and memory management.

The exercises are organized to facilitate systematic skill development, ranging from basic array creation and structure manipulation to complex tasks involving temporal data and search operations. The content is designed to help practitioners verify numerical logic and improve their ability to process data efficiently without relying on explicit loops.

The project is available as a repository of source files that can be used to practice and validate numerical computing techniques in a local development environment.

## Tags

### Education & Learning Resources

- [Python Exercises](https://awesome-repositories.com/f/education-learning-resources/programming-exercises/python-exercises.md) — Features a collection of structured coding challenges designed to master array manipulation and numerical computing techniques.
- [Data Science Tutorials](https://awesome-repositories.com/f/education-learning-resources/data-science-tutorials.md) — Provides a comprehensive set of hands-on exercises covering the full spectrum of numerical workflows for data science.
- [Technical Skill Exercises](https://awesome-repositories.com/f/education-learning-resources/technical-skill-exercises.md) — Provides a structured series of hands-on programming exercises to master array manipulation and numerical computing.
- [Data Science Resources](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/data-science-resources.md) — Serves as a curated repository of programming tasks for building proficiency in data science and array processing.
- [Array Initialization](https://awesome-repositories.com/f/education-learning-resources/array-tutorials/array-initialization.md) — Creates arrays of specified shapes using zeros, ones, identity matrices, or ranges. ([source](https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises_with_hints_with_solutions.md))
- [Proficiency Training](https://awesome-repositories.com/f/education-learning-resources/proficiency-training.md) — Offers curated training modules to build proficiency in handling irregular and missing data.

### Programming Languages & Runtimes

- [Arithmetic Broadcasting](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/language-features/array-operations/arithmetic-broadcasting.md) — Provides automated dimension expansion for element-wise arithmetic operations on multidimensional arrays.
- [Array Element Finding](https://awesome-repositories.com/f/programming-languages-runtimes/programming-utilities/data-structure-type-helpers/data-type-utilities/array-element-finding.md) — Calculates statistical metrics and identifies element indices to understand dataset characteristics. ([source](https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises_with_hints_with_solutions.md))

### Scientific & Mathematical Computing

- [Vectorized Array Operations](https://awesome-repositories.com/f/scientific-mathematical-computing/high-performance-execution-environments/scientific-computing-platforms/scientific-computing/vectorized-array-operations.md) — Executes mathematical operations on entire data structures simultaneously to eliminate explicit loops.
- [Array Manipulation Problems](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/algorithms-and-complexity/algorithms/algorithmic-problems/array-manipulation-problems.md) — Offers structured programming challenges focused on array manipulation and numerical data transformation. ([source](https://github.com/rougier/numpy-100/blob/master/LICENSE.txt))
- [Numerical Computing](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/mathematical-libraries-and-utilities/mathematics/numerical-computing.md) — Features structured exercises for mastering numerical computing and array-based mathematical operations. ([source](https://github.com/rougier/numpy-100/blob/master/requirements.txt))
- [Numerical Analysis Toolkits](https://awesome-repositories.com/f/scientific-mathematical-computing/numerical-mathematical-foundations/linear-algebra/numerical-analysis-toolkits.md) — Facilitates statistical calculations and array transformations for extracting insights from multidimensional data.
- [Scientific Computing](https://awesome-repositories.com/f/scientific-mathematical-computing/high-performance-execution-environments/scientific-computing-platforms/scientific-computing.md) — Supports scientific computing workflows through structured exercises in environment configuration and data processing.

### Data & Databases

- [Vectorized Arithmetic](https://awesome-repositories.com/f/data-databases/vectorized-arithmetic.md) — Executes element-wise operations and bitwise shifts on arrays without explicit loops. ([source](https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises.md))
- [Array and Tensor Manipulation](https://awesome-repositories.com/f/data-databases/data-processing-pipelines/data-transformation/array-tensor-manipulation.md) — Reshapes, reverses, pads, and flattens arrays to transform data layouts. ([source](https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises_with_hints_with_solutions.md))
- [Memory Layouts](https://awesome-repositories.com/f/data-databases/memory-layouts.md) — Organizes data in adjacent memory blocks to optimize cache efficiency and access speed.
- [Array Inspection](https://awesome-repositories.com/f/data-databases/data-type-inspection/array-inspection.md) — Maintains internal descriptors for shape, stride, and data type to enable flexible memory manipulation.
- [Numeric Calculators](https://awesome-repositories.com/f/data-databases/numeric-calculators.md) — Calculates results for complex mathematical operations to verify numerical logic under edge cases. ([source](https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises.md))
- [Array Manipulation Utilities](https://awesome-repositories.com/f/data-databases/array-manipulation-utilities.md) — Provides hands-on exercises for mastering array reordering, filtering, and transformation techniques. ([source](https://github.com/rougier/numpy-100#readme))
- [Data Type Managers](https://awesome-repositories.com/f/data-databases/data-type-managers.md) — Defines custom structured data types and converts array values between numerical formats. ([source](https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises_with_hints_with_solutions.md))
- [Missing Data Imputation](https://awesome-repositories.com/f/data-databases/missing-data-imputation.md) — Processes arrays containing missing or non-numeric values to maintain data integrity. ([source](https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises.md))
- [Typed-Array Buffers](https://awesome-repositories.com/f/data-databases/shared-memory-data-exchange/direct-memory-data-transfer/typed-array-buffers.md) — Manages fixed-size memory buffers with strict type definitions for consistent numerical operations.
- [Data Parsing](https://awesome-repositories.com/f/data-databases/data-engineering-infrastructure/data-extraction-ingestion/data-parsing.md) — Reads structured text files with inconsistent values into arrays by managing delimiters. ([source](https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises.md))
- [Temporal Arithmetic Utilities](https://awesome-repositories.com/f/data-databases/temporal-arithmetic-utilities.md) — Generates date sequences and performs arithmetic on time intervals using calendar-aware types. ([source](https://github.com/rougier/numpy-100/blob/master/100_Numpy_exercises_with_solutions.md))

### Repository Format

- [Awesome List](https://awesome-repositories.com/f/repository-format/awesome-list.md) — A community-curated directory that catalogs and links out to other open-source projects, rather than a standalone tool you run yourself.
