A curated list of useful programming libraries

A curated list of useful programming libraries


  • The python standard library
  • Flake8: Python linter.
  • Jupyter: Incredible tool for rapid prototyping and data visualization. Primarily for python, but works with other languages too.
  • Iodide: Data science for the web. Write python, javascript, markdown, and CSS to all run in a web browser.
  • Computational and Data Science
    • Gym: Very useful tool for developing reinforcement learning models on a (growing) set of defined tasks, ranging from controlling a robotic arm to playing atari videogames. In a nutshell, the purpose of this library is to have standard benchmarks for developing reinforcement learing models that are simple to set up and use. Most (if not all) of the tasks have a real time visualization showing how the agent is interacting with the environment.
    • Keras: Great deep learning library. Is built on top of many well known neural network libraries. Very high level, has a beautiful API. Note that additional libraries exist providing more esoteric functionality to keras, such as keras-contrib for additional layers and keras-rl for deep reinforcement learning.
    • Numpy: This one is vital; A n-dimensional array (tensor) manipulation library. Super fast since the backend is primarily written in C. Reminiscent of MATLAB.
    • OpenCV: Image processing library written in C++. Has a python wrapper.
    • Pandas: Data table manipulation library.
    • PyTorch: A very powerful deep learning library.
    • PyWavelets Extensive Wavelet library for python.
    • Scikit-Image: Solid image processing library.
    • Scikit-Learn: The go-to library for most machine learning techniques.
    • Scipy: Many common scientific functions and algorithms, such as special functions, integration, optimization, statistics, signal processing, etc.
    • StatsModels: Statistics library with many esoteric models and techniques. Still in the earlier stages of development.
    • TensorFlow Scalable neural network library.
    • xarray: N-D labeled arrays and datasets in Python. Somewhat of a multidimensional analog to Pandas.
  • Visualization
    • ggplot: Very clean data visualization library. Based on R’s ggplot2.
    • Matplotlib: The primary plotting library used in python. Very similar API to MATLAB plotting.
    • NetworkX: Graph manipulation and visualization library.
    • Plotly: Beautiful interactive visualization generation. Some features are not free.
    • Seaborn: Another good statistical data visualization library.
  • Big Data
    • dask: Powerful scalable computing library (MIMD); lets you build computational graphs and run code in parallel, along with a lot more.
    • h5py: HDF5 for python. Allows you to store large amounts of data on disk and manipulate it within python.


  • nodejs: Powerful javascript runtime.
  • eslint: Extensively customizable linter for javascript.
  • Prettier: Automatic code formater for javascript. Corrects formatting related issues that linters detect.
  • electron: Powerful framework for creating desktop applications using the traditional web stack (HTML + CSS + JS + extras). Many great applications are built on top of electron.
  • Data Visualization
    • D3: Very powerful interactive data visualization library.
    • Plotly.js: High level interactive data visualization library. Use this over D3 unless you are trying to do something very specific.
  • Drawing and Animation
    • two.js: Easy to use 2D drawing and animation library

Last updated: April 2019