| Summaries and Customer Reviews are supplied by Amazon.com | The goal of this book is to teach computational scientists how to develop tailored, flexible, and human-efficient working environments built from small programs (scripts) written in the easy-to-learn, high-level language Python. The focus is on examples and applications of relevance to computational scientists: gluing existing applications and tools, e.g. for automating simulation, data analysis, and visualization; steering simulations and computational experiments; equipping old programs with graphical user interfaces; making computational Web applications; and creating interactive interfaces with a Maple/Matlab-like syntax to numerical applications in C/C++ or Fortran. In short, scripting with Python makes you much more productive, increases the reliability of your scientific work and lets you have more fun - on Unix, Windows and Macintosh. All the tools and examples in this book are open source codes. The third edition is compatible with the new NumPy implementation and features updated information, correction of errors, and improved associated software tools. | Average Customer Rating: *The* reference for folks who work with Matlab 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.4), so that you can decide for yourself if NumPy is useful for your application.
I will not comment on the parts of the book that deal with C and FORTRAN integration because I leave that to more able programmers. I also will not comment on the extensive GUI building chapters because I do not build GUIs. I will point out, though, that I have derived full value out of this book simply by reading, and re-reading chapters 2, 3, 4 and 8. Some will argue that there is too much "basic Python" in these chapters for the whole to be considered advanced computational science -- my opinion is that even when the author describes "basic Python", his examples and intuition make it so that even one who has read a couple of reference books cover-to-cover will learn something about using "basic Python" to perform numerical analysis in a more efficient way. In fact, the book is a testament to doing really convoluted things in a really compact and elegant manner!
Absolutly Outstanding Python Scripting for Computational Science is both an introduction to the Python language and an excellent reference for the intermediate developer. The approach taken by the author is to present the language in the form of tasks to be solved accompanied by example code. As expected for a book on scientific computing the modules covered in the examples emphasize numerical packages but this in no way detracts from the applicability to general Python enthusiast.
What really makes this book more than just another Python introduction is that the author bridges the gap between complied and interpreted code. He demonstrates how the speed of execution of compiled code can be tied to the rapid pace at which scripts can be developed. Examples are provided for interfacing C, C++ and FORTRAN code with Python. Calls to precompiled applications are also covered and the examples were easily adapted to my favorite computational tools. One of the risks with doing numerical work in a scripting language is the possibility of straying into computationally intensive tasks to which interpreted code is not well suited . Latter chapters discuss how to identify these portions of your code and how to migrating these tasks to a compiled language.
good book If you want to learn Python, you should get it. Author do not build some "big" application (like "internet store software" or "bookstore software") from beginning to end, but rather give you a lot of practical examples of using python.
It is not like in others book that examples include only learned functions/methods, but use topics from the rest of book (you have example on page 25 and note that explanation of this and that function you found on page 543). By that you have interesting examples to use in real-world problems, not only examples to explain freshly learned topic. In other books interesting examples of use python you found on page 3234, because only when author introduce all useful functions. In this book nice examples is even on first pages.
You learn how to use numerical packages (numpy) in python, using some useful tricks on lists and arrays, introduce to using graphical interface in Tk. Get what you pay for and more if you work into it! I have both the 2nd and 3rd edition of the book. The book does have 'unexciting academic LaTeX format' which another reviewer pointed out, as is also true that one should 'NOT expect a cookbook of high performance algorithm implementations'. Rather, I would say that this is the type of book that algorithm-intense cookbooks could be made from.
The book has a lot to offer someone prepared to slosh through and dig in deep to the guts of the book. In this sense I found the book to lack a sense of conceptual significance, in that much of the mundane material of everyday programming receives the same level of detail that the more complex subjects do. So, it is often that I find myself skimming the trivial to find the core. Unfortunately, some of the core code elements and examples are compiled from a litany of trivialities and then it is necessary to go back and pick up the bits and pieces to make sense of where you are focusing on.
More often than not, the maze of obfuscation does lead to an interesting 'ah ha' and that makes the book worthwhile to me. I think the update from 2nd to 3rd editions is warranted, but should also have included a proper parsing of the chaff and a little creativity in layout would go a long way to making this book true reading material and a ready-by-your-side reference.
As it stands, I need to get in the right frame of mind to approach the book on even a casual encounter. But when I do, I am pleased with what I can take away from it and readily apply. The Tools and Examples section, which has high applicability to testing code, is very worthwhile but, again, is a little shaded as in viewing the forest from the trees. strong computational emphasis Langtangen's emphasis here is on a reader who comes from a strong background in engineering or science, and is familiar with common computational ideas and has done some programming, but not necessarily in Python. The typical book on Python is aimed at a general programming reader, and the examples in such a book usually are quite elementary, from a computational viewpoint.
The merit of Langtangen's book is that he gets into a lot of computational ideas. This is not a trivial book. Aspects like parsing data in files, connecting to local and remote hosts, and interacting with programs written in other languages are covered. For the latter, the important cases of Fortran and C programs are explained. The choices of these languages is deliberate. In science and engineering, they are the dominant languages for raw computation. And you are likely to have legacy code written in these, that you cannot abandon while using Python. | |