|Numpy 1.5 from Packt Publisher|
To sum up, I recommend this book for anyone whishing to learn about scientific computing with Python using the mathematical library Numpy which is a great alternative (and free !) for Matlab, Mathematica and other packages. I expect quite soon a book covering Scipy library also! By the way, the finantial fans will love this book since it covers almost of the entire book with examples using finance data!
The following chapters 2-4 presents the Numpy Fundamentals covering the array manipulations and most commonly used operations. The books goes into a cyclic process, where each function that the author presents goes through an introduction about the problem to solve, the actions (how you with Numpy can solve), auxiliar numpy functions and operations and finally what just happened, that is, explain what he has done after showing the solution. The examples covered at book, most of them, are from finantial data and stock market values. An interesting choice since he used the same examples through the chapters in a progression and logical way. Having each function and numpy featured described and explained made the book a good reference guide for someone using the library. There were minor issues related to the imports, he doesn't mention the imports in some examples, for instance the numpy.loadtxt function when he uses the datetime module. For a beginner that is studying Python for the first time, it may be harder to them to follow the examples, since he could not always tell where the functions or modules were coming from.
The second part of the book includes the matrices, universal functions, some scipy modules and the use of matplotlib and testing. The chapter 5 covers the matrix module and universal functions such as add, divide, prod, sum and so on. I missed some functions that weren't covered at this chapter such as numpy.choose or numpy.squeeze. I believe the author didn't remember or didn't have space to mention these specific functions, but it does not prejudice at all the quality of the book. The chapter that I liked the most at the book was about testing. Several developers, special the scientific researchers are not used to test their code, so I believe it is a great chapter for anyone who wants to assure quality and avoid future bugs using Numpy testing modules. The chapter should be more bigger and include more examples even creating test cases and tips for scientific developers.
Finally the last two chapters focus on plotting and Scipy integration. I think the plotting chapter should be at the beginning of the book, because he already uses lots of examples at the previous chapters with matplotlib and only at the end explain further about the library. The chapter is well-written and gives you sufficient content for beginning with Matplotlib. The last chapter covers the use of several scipy functions but it does not give deeper explanations about how it works as he did at the previous chapters with Numpy. However it gives several useful examples to work with integration, image processing and even optimization. Many developers will enjoy this extra-chapter covering the use of scipy+numpy.