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: