Enter your mobile number or email address below and we'll send you a link to download the free Kindle Reading App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your email address or mobile phone number.
"This book addresses primarily a CSE (computational science and engineering) audience. … gives a clear and detailed account on the ways in which the surprisingly powerful Python language may aid the CSE community." (H. Muthsam, Monatshefte für Mathematik, Vol. 151 (4), 2007)
--This text refers to an alternate Hardcover edition.
1) To improve the productivity of scientists familiar with specific software systems (especially Matlab, Maple, and Mathematica) by teaching them to "glue" applications together.
2) To advocate Python as the preferred "glue" language. In his own words, "I hope to convince computational scientists having experience with Perl that Python is a preferable alternative, especially for large long-term projects."
He has certainly done a creditable job. As an expert in computational differential equations, he neglects neither efficiency nor correctness, while stressing both simplicity and reliability. In this sense, he has done a great service to the Python community.
The question is: What justifies the purchase of his book?
The answer is: Chapters 4, 9, and 10.
Very convincing arguments.
2. Getting Started With Python Scripting--38pp
3. Basic Python--56pp
A too-quick tutorial. Go to python dot org instead.
4. Numerical Computing in Python--48pp
Stellar explanations of vectorized array operations.
5. Combining Python with Fortran, C, and C++--36pp
Details use of Fortran2Py and SWIG. Mentions many alternatives.
6. Introduction to GUI Programming--70pp
Useful examples of Tkinter/pmw widgets.
7. Web Interfaces and CGI Programming--24pp
Good source of ideas.
8. Advanced Python--132pp
Deep and extensive. Includes: option parsing, regular expressions, data persistence and compression, object-oriented programming, exceptions, generic programming, efficiency.
I'm giving this book five stars because it was basically written for me. I don't mean that literally, of course. I say that because the usual methods of googling for answers and reading the manual do not work when you are trying to push the limits of what a tool is capable of doing. I do numerical computations for a variety of things -- finding patterns in large data sets, automating data collection and analysis, converting raw serial output into convenient CSV, plotting multidimensional datasets etc. Over the years, I have collected a large number of productivity habits with Matlab, which allows me to do ridiculously convoluted things in a short period of time. You just have to read the introduction of any Python manual to understand why I am switching from Matlab to Python. The problem is -- what will replace all these productivity habits? They need to be replaced with "Pythonic" habits, something that can take years of practice.
The beauty about Langtangen's book is that it runs through every one of those techniques. Instead of giving a basic example (what your google search would have provided) or a complete list of, ahem, useless techniques (what the manual would have provided), you get exactly what a seasoned data analyst needs to know to get moving with state-of-the-art commands. The author also discusses optimizations and alternatives in each chapter.
The book is also the best source for explaining *why* NumPy should be used by people working with large datasets. Folks love to create toolkits for Python, but some of these are a list of non-intuitive shortcuts that don't provide a substantial improvement over basic Python. Langtangen goes through the pain of explaining the benefits of the package (chapter 4.1.Read more ›
I bought this book as an experienced programmer and Unix user expecting more of a "Numerical Recepies in Python" emphasis on the efficient implementation of algorithms which happen to be in Python. I should have paid more attention to the description.
This book is really more of a "Grad Student's Guide to Everyday Python Usage". I imagine it would be very valuable to a mathematics Grad student without too much programming or shell experience, looking for an alternative to Matlab. However, there is very little "Computational Science" in this book. Do NOT expect a cookbook of high performance algorithm implementations.
The book is a very verbose 700+ pages, all in an unexciting academic LaTeX format. The author works through idiom after idiom for accomplishing different tasks in fairly stand-alone sub-sections without much of a feeling of conceptual "flow" between them. It sort of feels like reading through the author's personal lab notes that he took everytime he learned a new language feature or trick.
If you are an experienced programmer, you will quickly get impatient with the verbose presentation that emphasizes idioms and examples instead of fundamental concepts and syntax reference tables. But, if you are an experienced programmer, you are not the target audience for this book.
I've bought what seems to (my wife) be every Python book out there and I can't tell you how sick I am of spam, spam, spam code! (trivial and obfuscated Python code examples with a common theme focused around one Monty Python skit or another...) Spam code seems to prevail in other Python books.
Here finally is a book with code examples that are very clear, are immediately useful to the serious programmer and filled with real life discourse on relative performance differences between Python and other languages that have a reputation for speed. There are clear examples of 'number crunching', producing images and even video animations, hooks into other scientific packages such as MathLab, etc.
If you are interested in really learning Python, want to come away from an hour or twos worth of coding experience with a module or two that you can use tomorrow and are not interested in code examples extolling Monty Python silliness, then this is the book for you.
While this book is about twice as expensive as many of my other Python books, I wish I had purchased this one first. Even though I've been using Python, seemingly every day, for two years, I kept finding nuggets in this book with what seemed to be every turn of the page. My focus right now is processing extremely large data sets of binary data but I'll soon be looking at image processing and I know I'll be reaching for this book over and over again. Don't hesitate! Just buy the book!
Was this review helpful to you?