I've been doing FORTRAN programming for 10 years and I've started using python for a few years now, mostly for data processing. I've been lucky enough to work with people that are knowledgeable python programmers and so I've learned quite a bit of practical skill. However, I feel like I'm rarely if ever thinking, if not in a pythonic way, at least in a truly OOP way, probably because I've had little formal training in OOP. Also I'm rarely doing such computationally intensive stuff that I feel optimization is critical but it has been a problem on a few search algorithms. Finally, to list a few specific packages that I'm actively using or would like to know more about. I'd say I know numpy and matplotlib fairly well. I've done a little bit of R but wouldn't mind a fully pythonic way like pandas or some of the scipy stuff (which I've used very little). Finally, GUI has never been necessary but why not if it makes other people more likely to use the tools...

So overall I feel like I'm missing something. I know the basics, I can understand most programs even with complex classes but when it's time to write my own classes, it feels clunky. Any good book/resource out there with a focus on science/engineering applications to help me think python? Like I tried to say, not looking for a reference book but more a python and science way of life. Anybody with similar background and/or experience?

I will add below books that I'm considering:

  • $\begingroup$ This is a great, but slightly forked question. Your title suggests you are interested in a book about Data Processing techniques in Python, your second paragraph actually makes it sound like you are more interested in finding a good book that teaches strong object-oriented (not necessarily in Python) design. If you are leaning towards the second, are you familiar with the Pragmatic Programmer, Design Patterns, and Refactoring books? $\endgroup$ Commented Nov 29, 2012 at 10:24
  • $\begingroup$ I'm not familiar with these books and I will take a look. It is true that I'm a little conflicted, because I'm not sure if what I'm missing when trying to write python is actually python-related or simply OO-related. But overall, I feel like python would be the OO data-processing language of choice for my field, CFD. (I hope I'm done writing large chunks of FORTRAN !). $\endgroup$ Commented Nov 29, 2012 at 10:42
  • $\begingroup$ I've requested some help from a knowledgable Python expert who uses it his for data management with his CFD computations, hopefully he will have time for a response soon, but I know he is a big fan of HPL's books :) $\endgroup$ Commented Nov 30, 2012 at 14:45
  • $\begingroup$ I have bought the McKinney book, will let you know what I think about it... $\endgroup$ Commented Dec 27, 2012 at 18:30

1 Answer 1


I haven't read Wes McKinney's book, but he's a smart guy and pandas is an awesome package. So I suspect it's good.

Another possibility for a quick start is to just go through the scikits learn documentation and code. It's nice package with a consistent interface, good examples, and nicely structured code. It's not "the answer" for data analysis using python, but it's a good starting place.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.