IPython? What's that?

IPython logo

IPython provides a rich architecture for interactive computing with:

  • Powerful interactive shells (terminal and Qt-based).
  • A browser-based notebook with support for code, text, mathematical expressions, inline plots and other rich media.
  • Support for interactive data visualization
  • Flexible, embeddable interpreters to load into your own projects.
  • Easy to use, high performance tools for parallel computing.

Let's grab some screenshots, not to just talk about imaginative things:

Terminal client

terminal

Browser client (called notebook)

Why should you use IPython? 5 reasons

If you are a programmer:

  1. Better python shell - terminal ipython client
  2. Amazing platform for experimenting and learning new things and interactive work, which can be easily transform to 'normal' production code
  3. Programming notebook:
    • documenting your code as you write it
    • inline execution
    • easy sharing - nbviewer
  4. Parallel execution and easy clustering, elaborate tutorial here
  5. Easy way to change your code to different formats, amazing for showing your work using convert:
    • html
    • reveal slides
    • pdf and more

It a well designed and actively developed tool with amazing community.

If you are a researcher:

  1. in one tool you can do:
    • data analysis
    • computation
    • visualisation
    • write publication
  2. amazing support for scientific libraries
  3. easy clustering - number crunching in star cluster
  4. recomputable science
  5. scientific notebook
    • sharing of your experimental method
    • version control
    • easy colaboration

Look at those notebooks.

All of this is pretty amazing, not just amount of features, but also how it is implemented and great community surrounding IPython. It's really easy to grab some tutorials and learn about new functionality, because of lots of great docs, tutorials and example.

How do I start using IPython effectively?

Your use cases may be different. I would start from installing IPython and reading the introductory docs.

If you have it installed, spend some time playing around. Lot's of features seems to be pretty intuitive, but it's easy to get stuck, knowing a very thin subset of ipython's functionality.

I highly recommend watching "Ipython In Depth" and cloning it's repo, full of amazing notebooks.