# Python Concepts/Libraries

* Python has a standard library that it is shipped with, plus many add-on libraries such as PyGame, which is a set of Python modules designed for writing games. It is written on top of the SDL library. Other libraries include The Python Imaging Library, which makes it easier to write programs that deal with images. Aside from libraries Python has many other benefits such as 'Extensions' which are basically C code that extends the functionality of the language. Some extensions include language bindings, for example:
* Lua
* Lisp
* ProLog
* C++
* Other extensions are possible through the Python/C API (Application Programmers Interface)
* On top of the language bindings you can also find packages to extend python much like the libraries, only smaller. To find python packages you should start at http://python.org or even simply use a search engine.
* GUI Toolkits
* PyGTK
* Python bindings for the cross-platform toolkit GTK+, which is written in C. It is used by many prominent organizations like One Laptop per Child.
* PySide
* Python bindings for the cross-platform toolkit Qt, which is written in C++. It has a more liberal licensing than PyQt.
* PyQt
* Python bindings for the cross-platform toolkit Qt, which is written in C++. It has over 400 classes and 6,000 functions/methods. It has more restrictive licensing than PySide.
* Tkinter
* Python bindings for the cross-platform toolkit Tk, which is written in C. It is the default GUI toolkit that ships with Python. Tkinter is used in several GUIs, most notably IDLE.
* wxPython
* Python bindings for the cross-platform toolkit wxWidgets, which is written in C++. Its a popular alternative to Tkinter. Unfortunately, it's for Python 2.X, although efforts for Python 3.X support is underway. It can be found in this.
* Mathmatics
* matplotlib
* A 2D plotting library which creates high quality charts and images in a variety of formats across multiple platforms.
* Numpy
* NumPy is a Python library used for working with arrays. It also has functions for working in domain of linear algebra, fourier transform, and matrices. NumPy was created in 2005 by Travis Oliphant. It is an open source project and you can use it freely.
* Pandas
* Pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.
* Science
* Scipy
* SciPy is a free and open-source Python library used for scientific computing and technical computing. SciPy contains modules for optimization, linear algebra, integration, interpolation, special functions, FFT, signal and image processing, ODE solvers and other tasks common in science and engineering.
* Automation
* Pywikibot
* Pywikibot is a Python library and collection of tools that automate work on MediaWiki sites. Originally designed for Wikipedia, it is now used throughout the Wikimedia Foundation's projects and on many other MediaWiki wikis. The project started in 2003 and is currently on core version 7.2.
* Scrapy
* Scrapy is a fast high-level web crawling and web scraping framework, used to crawl websites and extract structured data from their pages. It can be used for a wide range of purposes, from data mining to monitoring and automated testing.
Type classification: this resource is a collection of other resources.
Completion status: this resource is a stub, which means that pretty much nothing has been done yet.
Course Home Page :