This is a fantastic book for scientists, engineers, applied mathematicians, statisticians, programmers, and data analysts who have computation problems in mind and are looking to use an open-source programming language with plenty of modules to solve them. Python is my favorite high-level language because it's intuitive, very easy to install (if you own a Mac then you already have it!) and it has so many useful functions in the various module libraries.
My favorite thing about it this book is that when a module is introduced, the author gives a list of many relevant functions when appropriate. For example, when he introduces the linear algebra module (scipy.linalg) in Chapter 3, he goes through many of the matrix creation and operations functions that I didn't even know existed, and I'm an intermediate-level Python/NumPy user. He discusses solving large linear systems, eigenvalue problems, and FIVE different matrix decompositions as well as the corresponding module functions for each type of problem. This book is worth the price for Chapter 3 alone.
But thankfully, it goes on to discuss solving various common ODEs, optimization, the Runge-Kutta method, and numerical integration. And that's just Chapter 4. Again, the important detail here is how the author links each topic and problem to the corresponding SciPy module and relevant functions that do the vast majority of the work for you. He also shows how to use matplotlib for graphical purposes when a problem calls for it. Chapter 5 is about signal processing, which I didn't really understand but I think the gist of it is how to extrapolate from incomplete data and how to separate the signal from the noise.
I'm currently working as a data miner, which is the topic of Chapter 6. This is a nice introduction to the data analysis modules for SciPy: scipy.stats, scipy.spatial, and scipy.cluster. The data analysis examples were good, and the breakdown of hierarchical clustering was excellent, but I wished the chapter was a little longer. It is a great complement to McKinney's book on using Python for data analysis, which I also own.
All in all, I strongly recommend this book to anyone who has a computational problem to solve.
This is not a book. It barely rises to the level of documentation. And many of the examples are deprecated. Not worth the time. Really, just read the documentation.
I have been asked by Packt Publishing to review “Learning SciPy for Numerical and Scientific Computing“. The author, Francisco Silva, asked me some questions by e-mail about Packt Publishing prior to writing this book. So I guess my answers must have contributed just a little to the creation of the book. The book is about SciPy and has some minimal overlap with my books on NumPy. The publisher requested to keep the review short so I will only mention some highlights here. By the way I received a free e-book entry in my Packtlib account from which I chose the ePub version. I assume that the print book and the e-books in other format would have the same contents.
General Info
The book has 148 pages including front matter, preface and index. There are 8 chapters:
Chapter 1: Introduction to SciPy Chapter 2: Top-level SciPy Chapter 3: SciPy for Linear Algebra Chapter 4: SciPy for Numerical Analysis Chapter 5: SciPy for Signal Processing Chapter 6: SciPy for Data Mining Chapter 7: SciPy for Computational Geometry Chapter 8: Interaction with Other Languages
The Good
In the front matter one of the reviewers mentions my book “NumPy 1.5 Beginner’s Guide”. I have to give at least one star for that. Just kidding :) . The book gives a good overview of SciPy and explains a bit about NumPy and Matplotlib. Although if you are interested in NumPy, I would have to recommend my books.
The Bad
In my very humble and personal opinion the text seems to get a little “wordy” here and there.
The Ugly
This is a minor thing, but I did find it odd that some functions were called “commands” in the book.
Conclusion
Overall a good book on SciPy with a lot of mathematics. If you need more detailed information about Matplotlib and NumPy, I could recommend you other books by Packt Publishing.
Disclaimer: I received a free e-book by Packt Publishing. Also I have written a couple of books about NumPy published by the same publisher.
Learning SciPy for Numerical and Scientific Computing is a great reference book for mathematicians, scientists, engineers, and programmers looking to expand their computational toolbox. While matlab-based prototyping has, for many years, been the unchallenged standard in the development of computational algorithms, the development of the NumPy and SciPy packages in the last decade offers another option. This book focuses on introducing the syntax and capabilities of the combination of NumPy, SciPy, and matplotlib for standard problems in scientific computing. The book is built around numerous examples, with clearly explained source code and motivating discussions. While the material covered spans the range of a good numerical analysis textbook (linear algebra, interpolation, rootfinding, integration, ODEs, signal processing, data mining, computational geometry), the focus of this book is much more on the use of SciPy for these tasks than the development of the mathematics behind them or their use in large-scale simulations. Thus, the book is the perfect introduction to python's scientific computing abilities for a programmer already versed in numerical analysis and familiar with another programming language.
This is a nice book for anyone working in scientific computing (or related areas such as applied mathematics, computer and electrical engineering, among others), who aims to make Python his/her primary tool for developing and testing his/her algorithms. And this is in itself a very good idea, given the power and versatility of Python + NumPy + SciPy, and that they are free software. The style of the book is clear, concise and easy to follow. Furthermore, it guides the reader through examples which are central in the practice of scientific computing, making these examples good starting points for the reader's own developments using Python. For more information, here is a link to book on the publisher's page.