# Programming environment: Python
Originally by Mike Gelbart
We will be using Python for this course because it is open source and widely used in machine learning and data science. We will use Python 3, in particular 3.7 or higher.
We recommend the Anaconda Python distribution because it comes bundled with a bunch of useful packages (NumPy, SciPy, scikit-learn, Jupyter notebook) pre-installed. You can [download Anaconda from their website](https://www.anaconda.com/download/) for free.
If for some reason you don't want to use Anaconda, you can install the individual packages with `pip`. The annoying thing about Python is that the name of the package doesn't necessarily match the name in the code. For example if you see `import sklearn` in the code, you might (naively believing that we live in a sane world) try `pip install sklearn` but in fact it should be `pip install scikit-learn`.
Here are some resources that might help you learn Python. Note that the course staff has not tried out these materials and so we aren't necessarily endorsing them.
Hands-on tutorials:
- <https://swcarpentry.github.io/python-novice-inflammation/>
- <https://www.codecademy.com/learn/python>
- <https://www.datacamp.com>
Python cheat sheet:
- <https://learnxinyminutes.com/docs/python3/>
Numpy notes:
- <https://engineering.ucsb.edu/~shell/che210d/numpy.pdf>
- <http://www.cs.ubc.ca/~pcarter/cs189/cs189_ch7.html>
Books:
- <http://greenteapress.com/wp/think-python-2e/>
Courses:
- <https://www.coursera.org/learn/python>
- <https://www.udacity.com/course/programming-foundations-with-python--ud036>
- <https://www.coursera.org/learn/python-programming-introduction>
- <https://www.coursera.org/learn/python-data-analysis>
- <https://www.coursera.org/learn/principles-of-computing-1>