Book Review: Learning IPython for Interactive Computing and Data Visualization

I received a review copy of Packt Publishing’s Learning IPython for Interactive Computing and Data Visualization by Cyrille Rossant. Although the book title mentions only IPython, the book looks into using a number of other Python tools and libraries of potential use to the intended audience. Here is my review.

(The book uses Python 2).


The book has six chapters, so it’s a quick read. In the first two chapters, the author helps the reader getting started with using IPython (installation, basic things to do, using IPython as a shell) and also using IPython notebook for interactive python programming. He demonstrates how to perform basic profiling, measuring the run time of your scripts/statements and also discusses plotting with matplotlib (via pylab) from IPython notebook.

Chapter 3 introduces vector operations and using NumPy for performing the same. Topics such as indexing, reshaping are introduced in this chapter. This chapter also introduces the Pandas tool and demonstrates using it using a publicly available data set.

Chapter 4 discusses plotting, graphing and visualization in detail using matplotlib and others.

Chapter 5 discusses two main of concepts. One, running your programs on multiple cores and basics of using the Message Passing Interface (MPI). The second main concept discussed is using Cython. At the end, the chapter also mentions libraries such as Blaze and Numba which are of potential usefulness to  the intended audience.

The final chapter of the book discusses customizing IPython (creating profiles, etc.), and also shows you can create an extension that introduces a new cell magic.

Interesting Features

  • Hands-on style
  • Up -to-date information and references
  • Just enough information for the reader to learn and explore more


The book is interesting and pleasant to read and follow. It does well in introducing features of IPython and other tools of interest to the book’s audience. Definitely worth buying.