Skip to content

Python

Numerical & Scientific Computing

Core Array & Math

  • NumPy - foundational N-dimensional array library; the lingua franca for numerical Python
  • SciPy - algorithms built on NumPy: optimization, integration, interpolation, signal processing, linear algebra, statistics
  • SymPy - symbolic mathematics (CAS) in pure Python

DataFrames

  • Pandas - the classic DataFrame library; row-oriented, index-centric, mature ecosystem
  • Polars - fast DataFrame library written in Rust; lazy evaluation, Apache Arrow columnar memory, excellent for large datasets
  • cuDF (RAPIDS) - GPU-accelerated DataFrames with a pandas-compatible API

Linear Algebra & Array Backends

  • CuPy - NumPy/SciPy-compatible array library running on CUDA GPUs
  • JAX - NumPy on accelerators (CPU/GPU/TPU) with automatic differentiation and JIT via XLA; popular in ML research
  • Dask - parallel and out-of-core computing; scales NumPy/Pandas workflows to clusters or large-memory machines

Machine Learning & Deep Learning

  • scikit-learn - classical ML: classification, regression, clustering, preprocessing, model selection
  • PyTorch - dominant deep learning framework; dynamic graphs, strong research ecosystem
  • TensorFlow / Keras - production-oriented deep learning; Keras is its high-level API

Visualization

  • Matplotlib - foundational plotting library; verbose but fully controllable
  • Seaborn - statistical visualization built on Matplotlib; cleaner defaults
  • Plotly - interactive plots for notebooks and web; also powers Dash dashboards

Specialized Packages

Type Checking

  • mypy - the original and most widely adopted Python type checker; strict mode, plugin ecosystem, incremental checking; de facto standard for CI enforcement
  • Pyright - fast, accurate type checker from Microsoft written in TypeScript; powers Pylance in VS Code; strict mode goes further than mypy in several areas; excellent for large codebases
  • Pylance - VS Code language server built on Pyright; adds IntelliSense, auto-imports, and semantic highlighting on top of Pyright's type engine
  • Pyrefly - new type checker from Meta written in Rust; aims for extreme speed on very large monorepos; still maturing but very fast incremental analysis. Used in the PyTorch repo internally.
  • Ruff - primarily a linter/formatter, but enforces many type-annotation style rules (e.g. UP/ANN rule sets) and is the fastest option for catching annotation anti-patterns at lint time