You can write all code in notepad / vim / sublime text. But, does it make any sense, when there are other tools designed to help you go faster?
One of them, dedicated to Machine Learning in Python, is Spyder. I've found it when I was following Udemy Deep Learning Course. And since I was programming in RStudio (R programming language) earlier, I was struck by similarity of both tools - the same layout of windows, similar commands, just other language :P Let's take a look:
I tried installing in on Linux using Python Package Index, but no matter what, I always had problems with memory crashes and couldn't launch application. Then I switched to Windows, and it was literally my first ever case when something worked under Windows and not under Linux (other than games and Microsoft applications, ofc ;) ). Maybe that's I prefer web-based applications than windowed ones :P I've used Anaconda distribution (that can be found here) and it's just working as intended.
To our disposal is similar set of features to RStudio. You can execute selected lines of code (
SHIFT + ENTER), run whole file (
F5), divide file into cells, like this:
#%% number = 15 * 23 print 'First cell! Number is %s' % number #%% print 'Second cell!
and run cell-by-cell using
SHIFT + ENTER. Everything we do is executed in the same kernel context - previous variables keep their values, so it's similar to Jupyter Notebook. But we have also ability to lookup each declared variable, and it's a brilliant feature!
There are many other useful options, but I strongly recommend to find them on your own, if you are interested in machine learning in Python.