Installs into .claude/skills of the current project.
Are you the author of Numpy?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/microsoft-numpy)
---
name: numpy
description: Best practices for numerical computing with NumPy including arrays, broadcasting, and vectorization.
---
# 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`.