mcpbeat

Numpy

microsoft/numpy

Best practices for numerical computing with NumPy including arrays, broadcasting, and vectorization.

380 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
2448
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/microsoft/debugpy --skill numpy

The instruction itself

7 sections, as written by the author

Skill: NumPy

Best practices for numerical computing with NumPy including arrays, broadcasting, and vectorization.

When to Use

Apply this skill when doing numerical computing with NumPy — arrays, broadcasting, linear algebra, random sampling.

Arrays

  • Use explicit dtypes (np.float64, np.int32) when creating arrays.
  • Prefer np.zeros, np.ones, np.empty, np.arange, np.linspace over list-based construction.
  • Use structured arrays or separate arrays instead of object arrays.

Vectorization

  • Replace Python loops with vectorized NumPy operations wherever possible.
  • Use broadcasting rules to operate on arrays of different shapes without explicit expansion.
  • Use np.where() for conditional element-wise operations.

Memory

  • Use np.float32 instead of np.float64 when precision is not critical to halve memory.
  • Use views (reshape, slicing) instead of copies when data doesn't need mutation.
  • Use np.memmap for arrays too large to fit in RAM.

Random

  • Use np.random.default_rng(seed) (new Generator API) instead of np.random.seed().
  • Always seed random generators in tests for reproducibility.

Pitfalls

  • Don't compare floats with ==; use np.allclose() or np.isclose().
  • Beware of silent integer overflow in integer arrays.
  • Avoid np.matrix — it's deprecated; use 2D np.ndarray.

How to use it

Copy the folder

Take microsoft/numpy from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.