Python Resources

Python is an interpreted, runtime typed programming language with a focus on readability and programmer productivity. Python is an object structured language – which means that everything in Python is an object. Its simple semantics, combined with its tremendous library and hardware support has made it an indispensable tool in areas as diverse as web application development, systems administration, education and scientific computing.

In a scientific/engineering context, Python is a superb tool for building “ugly” prototypes and models of systems and for performing data analysis. Third party support libraries are freely available which provide simple interfaces for graphing, linear algebra, machine learning, image analysis, and many other tasks in technical computing.

Major Resources:

  • Python.org – The Python Programming Language Website
  • The Hitchhikers Guide to Python – Major list of online resources for the Python programming language
  • PyVideo – Educational video on the python programming language – covers a range of topics from the mundane to the hilarious. Very Strongly Recommended.
  • Python Package Index – One of the best places to look for Python libraries to do almost anything.

Recommended Resources:

How to do X in Python (for some values of X):

In general, you should check out the resources in The Hitchhikers Guide to Python as well as this list.

Scientific/Technical Computing:

Hit the “Go Fast” Button:

  • PyPy – A specializing JIT for Python (Doesn’t work with NumPy yet… but it’s being worked on)
  • Shedskin – A fast ahead of time compiler for Python – also doesn’t have NumPy support
  • Cython – Compiles Python modules to C, then uses GCC to compile them to binaries. Works wonderfully with NumPy. Installed by default as part of Anaconda.
  • RunCython – A set of tools to make working with Cython a bit more comfortable. Recommended.
  • The Cython Compiler for Python – A solid talk about how to use Cython to speed up yout Python code
  • Performance Python for Numerical Algorithms – A short overview of how to make Python numerics faster
  • High Performance Python I – An excellent talk by Ian Ozsvald on how to make your Python code run considerably more quickly
  • High Performance Python II – A very good talk on Performance by Travis Oliphant. Covers a different approach than that used by Ian Ozsvald used above.

Bluetooth:

Serial Communications:

  • PySerial – A serial port interface library for Python. This package allows the use of serial ports in a standardized way on all major Python platforms (Windows, Linux, MacOS X). If you need to communicate with some embedded device over serial, this is probably what you need.
  • PySerial Documentation – Should be self explanatory…

Arduino:

  • Instrumentio – A GUI for controlling arduino based virtual devices
  • PyFirmata – A library for controlling Arduino devices from Python
  • Use Serial or Bluetooth to communicate with some microcontroller running your (custom) code.
  • More information on all these options can be found here.

 

Leave a Reply

Your email address will not be published. Required fields are marked *