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.
- 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.
- 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
- 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
- Drawing and Animation
- two.js: Easy to use 2D drawing and animation library
Last updated: April 2019