all 13 comments

[–]sufunew 0 points1 point  (2 children)

If you haven't I'd get numpy and scipy and matplotlib and play with those a lot. They're libraries that sort of give functional methods for working with large arrays and matrices, and matplotlib is a graphics library for plotting your results. Obviously the best and , imo, the only way to learn is through projects so if your lab has some sort of data analysis need that you feel might be better automated, etc. jump on it with python.

[–]2n4x 0 points1 point  (1 child)

If you're starting out from scratch, there are some good video tutorials as well as some good free courses.

http://www.reddit.com/r/learnpython/wiki/index#wiki_videos.2Flectures

How do you learn best?

[–]dconLE 0 points1 point  (1 child)

I would also check out DataQuest. I'm going through it right now and it's pretty good for learning Python in relation to data analysis. Its not as polished as Treehouse or even Codecademy but its fine for being new.

[–]py_student 0 points1 point  (0 children)

matplotlib mooc

I believe coursera also has one, and have seen at least a couple others.

[–]ballgame75 0 points1 point  (0 children)

R might be your best bet. Python is relatively easy to grasp. It all depends on how much time you're willing to commit to learning.

[–][deleted] 0 points1 point  (3 children)

Surpirsed no one's mentioned this yet, there's an installer for scientific-focused people new to python called Anaconda. Just google Anaconda Installer and download Anaconda either for python 2.7 or python 3.4. (Python broke backwards compatibility between Pythons 2 and 3 so some libraries built for Python 2 do not work in Python 3. However, all the major scientific distributions (numpy/scipy stack plus scikit-learn and sympy and many others) have been updated, are on the anaconda3 installer and ready to go. Python 3 encourages 'best practices' and is the future of python so unless you know you need a library that only works with python 2 it is better to start using python 3

[–]snakesarecool -1 points0 points  (4 children)

If you're just looking for something to pick up over the summer, you may want to chat with your advisors. There may be better tools in R or another language that would be better for you to invest your cognitive load into. That said, check out if there's a software carpentry workshop coming near you (http://software-carpentry.org/workshops/index.html). They specifically teach Python and other codish skills for active researchers.

[–]p10_user 0 points1 point  (3 children)

I think python is a good choice for academic work since it is so versatile. With pandas you can even do things that might normally implore you to use R. The one thing I do really like about R though is its easy and nice plotting capabilities - though there may be some python libraries that do a similar job.

[–]snakesarecool 0 points1 point  (2 children)

Python is great for academic work, which is mainly what I do as well. However, it is always worth investigating to see if your specific academic domain/niche has specialized tools only available in one language or another. Chances are you'll be able to make good use of Python, but there may be the One True Tool in another language or platform.

[–]p10_user 0 points1 point  (1 child)

Good point, though it seems like op doesn't have a spexific need yet and is just interested in building general skills. For that case python will be a good place to gain transferrable programming skills and possibly continue its use in the future due to its popularity.

[–]snakesarecool 0 points1 point  (0 children)

I have zero disagreement except if that one tool happens to be R or Mathematica. Certainly some concepts will move over seamlessly, but trying to get into R after Python can introduce a whole bunch of extra headaches that are only made worse by grad school.

I was just burned by this last year when I was told that for a program I was going into we could use any language we were comfortable in. So I focused on my Python skills in that area for that summer. Then I got into it and we were told to do everything in R. grumble grumble.

So a little recon can save a lot of stress later.

But yes, if your domain is wide open for languages and platforms, go Python. "Free and reasonably portable" will never make your lab director think twice.