Python Programming

Resources | 02 January 2017

Using Python, you can automate repeated tasks, create interactive/dynamic websites, make intelligent robots, perform deep learning/machine learning, do natural language processing, create games etc. Resources, links and libraries related to Python programming language are collected here for students and professionals interested to learn this amazing programming language 😊

Learn Python


Courses


Audio Processing

  • Librosa - Audio and Music processing in Python.
  • audiolazy - Real-Time Expressive Digital Signal Processing (DSP) Package for Python.
  • pyAudioAnalysis - A Python library for audio feature extraction, classification, segmentation and applications.
  • Pydub - Manipulate audio with a simple and easy high-level interface.
  • TimeSide - Audio processing framework for the web.
  • mutagen - A Python module to handle audio metadata.
  • mingus - An advanced, cross-platform music theory and notation package for Python with MIDI file and playback support.

Computer Vision

  • OpenCV - Computer Vision made easier with the help of OpenCV. Learn to apply state-of-the-art Computer Vision algorithms using Python.
  • Mahotas - Computer Vision and Image Processing library for Python that has implementations of algorithms such as Haralick Texture etc.
  • scikit-image - Collection of Image Processing algorithms for Python.
  • Pillow - Image Processing library for Python which is much friendly than PIL (Python Imaging Library).
  • PyOCR - An optical character recognition (OCR) tool wrapper for python. That is, it helps using various OCR tools from a Python program.
  • Python Tesseract - An optical character recognition (OCR) tool for python. That is, it will recognize and "read" the text embedded in images.

Data Structures & Algorithms

  • NetworkX - A Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.

Data Visualization

  • matplotlib - Python 2D plotting library which produces publication quality figures in a variety of hardcopy formats and interactive environments across platforms.
  • Seaborn - Make plots even cute! Python visualization library based on matplotlib.
  • Bokeh - An interactive visualization python library that targets modern web browsers for presentation.
  • bqplot - Plotting library for Jupyter notebooks.
  • Altair - A declarative statistical visualization library for Python, based on Vega and Vega-Lite
  • Pygal - Python library to create beautiful SVG charts.
  • PyGraphViz - Python interface to GraphViz (Graph visualization is a way of representing structural information as diagrams of abstract graphs and networks.).
  • VisPy - A Python library for interactive scientific visualization that is designed to be fast, scalable, and easy to use.
  • PyQtGraph - A pure-python graphics and GUI library built on PyQt4 / PySide and numpy.

Deep Learning

  • Keras - Created by Franchois Chollet, Artificial Intelligence Researcher, Google, it is one of the best Deep Learning libraries for Python, that is simple, modular, and extensible.
  • Caffe - Created by Yangqing Jia and developed by the Berkeley Vision and Learning Center (BVLC) and by community contributors.
  • Caffe2 - A New Lightweight, Modular, and Scalable Deep Learning Framework.
  • Theano - Primarily developed by a machine learning group at the Université de Montréal.
  • TensorFlow - Originally developed by the Google Brain team for internal Google use before being released under the Apache 2.0 open source license on November 9, 2015.
  • MXNet - Open-source deep learning framework that allows you to define, train, and deploy deep neural networks on a wide array of devices, from cloud infrastructure to mobile devices.
  • PyTorch - Tensors and Dynamic neural networks in Python with strong GPU acceleration.
  • sklearn-theano - OverFeat and GoogleNet feature extractor for Python.
  • Skorch - A scikit-learn compatible neural network library that wraps PyTorch.
  • NeuPy - A Python library for Artificial Neural Networks.

Documentation

  • MkDocs - Fast, simple and downright gorgeous static site generator that's geared towards building project documentation. Documentation source files are written in Markdown, and configured with a single YAML configuration file.
  • Sphinx - A tool that makes it easy to create intelligent and beautiful documentation.
  • pdoc - A simple command line tool and library to auto generate API documentation for Python libraries.
  • pycco - A Python port of Docco: the original quick-and-dirty, hundred-line- long, literate-programming-style documentation generator.

Game Development

  • PyGame - A cross-platform set of Python modules designed for writing video games.
  • Cocos2d - A family of open-source software frameworks for building cross-platform games & apps.
  • Panda3D - A game engine, a framework for 3D rendering and game development for Python and C++ programs which is open-source and free for any purpose.
  • PyOpenGL - The most common cross platform Python binding to OpenGL and related APIs.

GUI Development

  • Tkinter - Python's de-facto standard GUI (Graphical User Interface) package.
  • wxPython - A blending of the wxWidgets C++ class library with the Python programming language.
  • PyQt - Set of Python v2 and v3 bindings for The Qt Company's Qt application framework and runs on all platforms supported by Qt including Windows, OS X, Linux, iOS and Android.

HTML Manipulation

  • Beautiful Soup - HTML and XML parsing, searching, modifying library for Python that makes web scraping easier.
  • lxml - The most feature-rich and easy-to-use library for processing XML and HTML in the Python language.
  • cssutils - A CSS Cascading Style Sheets library for Python.
  • html5lib - A pure-python library for parsing HTML.
  • pyquery - Allows you to make jquery queries on xml documents.
  • untangle - Converts XML to a Python object.
  • WeasyPrint - A visual rendering engine for HTML and CSS that can export to PDF.
  • xmldataset - A Python library that simplifies the extraction of datasets from XML content.

Machine Learning

  • scikit-learn - Simple and efficient tools for Machine Learning, Data Mining and Data Analysis. You can find almost every Machine Learning algorithm implemented such as Random Forests, SVM, Logistic Regression, CART, Naive Bayes etc.
  • PyFlux - Open source time series library for Python.

Robotics

  • PythonRobotics - compilation of various robotics algorithms with visualizations.
  • rospy - A pure Python client library for Robot Operating System.
  • Fire - Library for automatically generating command line interfaces (CLIs) from absolutely any Python object.

Other libraries

  • SQLAlchemy - Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL.
  • Selenium - Used to automate web browser interaction from Python.
  • Fire - Library for automatically generating command line interfaces (CLIs) from absolutely any Python object.

Scientific Computing Stack

  • NumPy - Working with matrices and arrays made much simpler! Who doesn't need NumPy!
  • SciPy - Powerful mathematical computation library for Science and Engineering.
  • Pandas - High-performance, easy-to-use data structures and data analysis tools for Python.

Text Manipulation

  • Natural Language Toolkit (NLTK) - Leading platform for building Python programs to work with human language data.
  • Pexpect - Makes Python a better tool for controlling other applications.
  • Pyenchant - Spellchecking library for Python, based on the excellent Enchant library.
  • Whoosh - Python library of classes and functions for indexing text and then searching the index.

Web Development

  • Django - Makes it easier to build better Web apps more quickly and with less code - awesome-django
  • Flask - A microframework for Python based on Werkzeug, Jinja 2 and good intentions - awesome-flask
  • Tornado - A Python web framework and asynchronous networking library.
  • Pyramid - A small, fast, down-to-earth, open source Python web framework - awesome-pyramid
  • Dash - Dash is a Python framework for building analytical web applications. No JavaScript required.
  • Bottle - A fast, simple and lightweight WSGI micro web-framework for Python.

In case if you found something useful to add to this article or you found a bug in the code or would like to improve some points mentioned, feel free to write it down in the comments. Hope you found something useful here.