Numpy Linalg
by benchflow-ai
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.
Skill Details
Repository Files
2 files in this skill directory
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
- Multiplying two matrices?
- Use the
@operator (modern standard).
- Use the
- Multiplying 3+ matrices?
- Use
np.linalg.multi_dotto optimize multiplication order.
- Use
- Is the matrix square and full-rank?
- Yes: Use
np.linalg.solve. - No: Use
np.linalg.lstsqfor a best-fit solution.
- Yes: Use
Workflows
-
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.
-
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.
- Perform Singular Value Decomposition using
-
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 overdot()for 2D matrix products for readability and intent. - Multi-Dot Optimization:
multi_dotuses dynamic programming to find the optimal parenthesization of matrix products, which can significantly speed up calculations with varying matrix sizes. - Batch Processing: Most
linalgfunctions 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
- "a must be square and of full-rank... if either is not true, use lstsq for the least-squares best “solution”." Source
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
Related Skills
Attack Tree Construction
Build comprehensive attack trees to visualize threat paths. Use when mapping attack scenarios, identifying defense gaps, or communicating security risks to stakeholders.
Grafana Dashboards
Create and manage production Grafana dashboards for real-time visualization of system and application metrics. Use when building monitoring dashboards, visualizing metrics, or creating operational observability interfaces.
Matplotlib
Foundational plotting library. Create line plots, scatter, bar, histograms, heatmaps, 3D, subplots, export PNG/PDF/SVG, for scientific visualization and publication figures.
Scientific Visualization
Create publication figures with matplotlib/seaborn/plotly. Multi-panel layouts, error bars, significance markers, colorblind-safe, export PDF/EPS/TIFF, for journal-ready scientific plots.
Seaborn
Statistical visualization. Scatter, box, violin, heatmaps, pair plots, regression, correlation matrices, KDE, faceted plots, for exploratory analysis and publication figures.
Shap
Model interpretability and explainability using SHAP (SHapley Additive exPlanations). Use this skill when explaining machine learning model predictions, computing feature importance, generating SHAP plots (waterfall, beeswarm, bar, scatter, force, heatmap), debugging models, analyzing model bias or fairness, comparing models, or implementing explainable AI. Works with tree-based models (XGBoost, LightGBM, Random Forest), deep learning (TensorFlow, PyTorch), linear models, and any black-box model
Pydeseq2
Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
Query Writing
For writing and executing SQL queries - from simple single-table queries to complex multi-table JOINs and aggregations
Pydeseq2
Differential gene expression analysis (Python DESeq2). Identify DE genes from bulk RNA-seq counts, Wald tests, FDR correction, volcano/MA plots, for RNA-seq analysis.
Scientific Visualization
Meta-skill for publication-ready figures. Use when creating journal submission figures requiring multi-panel layouts, significance annotations, error bars, colorblind-safe palettes, and specific journal formatting (Nature, Science, Cell). Orchestrates matplotlib/seaborn/plotly with publication styles. For quick exploration use seaborn or plotly directly.
