Back to skills
SkillHub ClubAnalyze Data & AIFull StackData / AI

numpy-linalg

Imported from https://github.com/benchflow-ai/SkillsBench.

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
785
Hot score
99
Updated
March 20, 2026
Overall rating
C4.8
Composite score
4.8
Best-practice grade
F32.4

Install command

npx @skill-hub/cli install benchflow-ai-skillsbench-numpy-linalg

Repository

benchflow-ai/SkillsBench

Skill path: registry/terminal_bench_2.0/full_batch_reviewed/terminal_bench_2_0_model-extraction-relu-logits/environment/skills/numpy-linalg

Imported from https://github.com/benchflow-ai/SkillsBench.

Open repository

Best for

Primary workflow: Analyze Data & AI.

Technical facets: Full Stack, Data / AI.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: benchflow-ai.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install numpy-linalg into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/benchflow-ai/SkillsBench before adding numpy-linalg to shared team environments
  • Use numpy-linalg for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: numpy-linalg
description: Linear algebra operations in NumPy, including matrix multiplication, SVD, system solving, and least squares fitting. Triggers: linalg, matrix multiplication, SVD, eigenvalues, matrix decomposition, lstsq, multi_dot.
---

## Overview
NumPy's `linalg` module provides high-performance implementations for standard linear algebra routines. It leverages optimized backends (like BLAS/LAPACK) for operations such as Singular Value Decomposition (SVD), batch equation solving, and least-squares optimization.

## When to Use
- Solving systems of linear equations ($Ax = b$).
- Dimensionality reduction or matrix reconstruction using SVD.
- Optimizing chains of matrix multiplications to reduce FLOPs.
- Finding best-fit solutions for overdetermined systems.

## Decision Tree
1. Multiplying two matrices?
   - Use the `@` operator (modern standard).
2. Multiplying 3+ matrices?
   - Use `np.linalg.multi_dot` to optimize multiplication order.
3. Is the matrix square and full-rank?
   - Yes: Use `np.linalg.solve`.
   - No: Use `np.linalg.lstsq` for a best-fit solution.

## Workflows
1. **Solving Multiple Linear Systems in Batch**
   - Organize coefficient matrices into a stack of shape (K, M, M).
   - Organize ordinate values into a stack of shape (K, M).
   - Call `np.linalg.solve(a, b)` to compute all solutions simultaneously.

2. **Rank-Reduced Reconstruction via SVD**
   - Perform Singular Value Decomposition using `np.linalg.svd(a, full_matrices=False)`.
   - Set small singular values in 's' to zero to perform noise reduction.
   - Reconstruct the matrix using `(u * s) @ vh`.

3. **Least Squares Fitting for Overdetermined Systems**
   - Construct the matrix 'A' of variables and vector 'b' of results.
   - Use `np.linalg.lstsq(A, b)` to find the solution that minimizes the Euclidean 2-norm.
   - Retrieve the coefficients and residuals from the returned tuple.

## Non-Obvious Insights
- **Modern Operator:** The `@` operator is preferred over `dot()` for 2D matrix products for readability and intent.
- **Multi-Dot Optimization:** `multi_dot` uses dynamic programming to find the optimal parenthesization of matrix products, which can significantly speed up calculations with varying matrix sizes.
- **Batch Processing:** Most `linalg` functions support "stacked" arrays, processing multiple independent problems in leading dimensions automatically.

## Evidence
- "The @ operator... is preferable to other methods when computing the matrix product between 2d arrays." [Source](https://numpy.org/doc/stable/reference/routines.linalg.html)
- "a must be square and of full-rank... if either is not true, use lstsq for the least-squares best “solution”." [Source](https://numpy.org/doc/stable/reference/generated/numpy.linalg.solve.html)

## Scripts
- `scripts/numpy-linalg_tool.py`: Demonstrates SVD reconstruction and batch solving.
- `scripts/numpy-linalg_tool.js`: Simulated vector normalization logic.

## Dependencies
- `numpy` (Python)

## References
- [references/README.md](references/README.md)
numpy-linalg | SkillHub