https://github.com/vlad1343/tools
This repository demonstrates the acquisition of advanced Python programming skills through structured exercises and projects, with a strong emphasis on NumPy for array manipulation, slicing, masking, and reshaping
https://github.com/vlad1343/tools
jupyter-notebook numpy numpy-library numpy-python pandas pandas-python python python3
Last synced: 1 day ago
JSON representation
This repository demonstrates the acquisition of advanced Python programming skills through structured exercises and projects, with a strong emphasis on NumPy for array manipulation, slicing, masking, and reshaping
- Host: GitHub
- URL: https://github.com/vlad1343/tools
- Owner: Vlad1343
- Created: 2025-09-17T08:58:48.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-10-01T22:39:49.000Z (6 months ago)
- Last Synced: 2025-10-02T00:19:21.562Z (6 months ago)
- Topics: jupyter-notebook, numpy, numpy-library, numpy-python, pandas, pandas-python, python, python3
- Language: Jupyter Notebook
- Homepage:
- Size: 125 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Tools and Exercises Repository
This repository contains exercises, small projects, and playgrounds exploring advanced Python concepts and libraries. It is a work-in-progress for learning and practicing new Python skills through hands-on coding challenges.
## Achievements
- Gained strong foundational NumPy and data manipulation skills by implementing custom array transformations, masks, and reshaping tasks.
- Designed and solved multiple structured array challenges (such as creating bordered arrays, cross patterns, and embedded matrices).
- Practiced reproducibility and clarity in experiments through modular code, indexing, and controlled random number generation.
- Used array creation and modification tasks (e.g., setting specific cells, filling subarrays) to deepen understanding of broadcasting and slicing.
## Topics & Libraries Explored
### NumPy
- Array creation: `zeros`, `ones`, `full`, `identity`
- Randomized data generation with `np.random.rand`, `np.random.randint`
- Reshaping and slicing (multi-dimensional indexing, subarray replacement)
- Boolean masking and conditional selection
- Stacking arrays (`hstack`, `vstack`) and embedding smaller arrays into larger ones
- Targeted updates (changing single elements or subarrays, e.g., setting center value)
### Python Fundamentals
- Itertools for grouping and processing lists
- Differences between views and copies (`.copy()`)
- Boolean operations and logical indexing
- File handling with NumPy I/O (`np.genfromtxt` for CSV-like data)
## Projects & Exercises
- **Structured Array Tasks**:
- Created a 7×7 array filled with `3`, inserted a `5×5` array of `1`s in the center, and updated the very center element to `5`.
- Built bordered arrays (double borders of different values).
- Cross patterns and "donut" arrays using slicing.
- Reshaping 1D arrays into 2D/3D layouts.
- **Masking and Selection**:
- Boolean masks to filter array elements by conditions.
- Extracted diagonals, rows, and columns from structured arrays.
- **Mini Playgrounds**:
- Experimented with 3D arrays and nested indexing.
- Grouped words by their first letter using `itertools.groupby`.
## Tech Stack
- **Libraries**: NumPy, itertools
- **File I/O**: CSV/Text parsing with NumPy
- **Environment**: Jupyter Notebooks, VS Code
## Purpose
The aim of this repository is to steadily build advanced Python fluency through practice and experimentation.
Key goals include:
- Understanding NumPy array manipulation at a low level.
- Practicing conditional masking and selection logic.
- Designing structured array challenges (borders, patterns, embeddings).
- Reinforcing programming concepts like iteration, grouping, and data slicing.