introduction to numpyscipyand matplotlib before we can talk about concrete machine learning algorithmswe have to talk about how best to store the data we will chew through this is important as the most advanced learning algorithm will not be of any help to us if they will never finish this may be simply because accessing the data is too slow or maybe its representation forces the operating system to swap all day add to this that python is an interpreted language ( highly optimized onethoughthat is slow for many numerically heavy algorithms compared to or fortran so we might ask why on earth so many scientists and companies are betting their fortune on python even in the highly computation-intensive areasthe answer is that in pythonit is very easy to offload number-crunching tasks to the lower layer in the form of or fortran extension that is exactly what numpy and scipy do (the support of highly optimized multidimensional arrayswhich are the basic data structure of most state-of-the-art algorithms scipy uses those arrays to provide set of fast numerical recipes finallymatplotlib (most convenient and feature-rich library to plot high-quality graphs using python installing python luckilyfor all the major operating systemsnamely windowsmacand linuxthere are targeted installers for numpyscipyand matplotlib if you are unsure about the installation processyou might want to install enthought python distribution (python( , (come with all the earlier mentioned packages included chewing data efficiently with numpy and intelligently with scipy let us quickly walk through some basic numpy examples and then take look at what scipy provides on top of it on the waywe will get our feet wet with plotting using the marvelous matplotlib package you will find more interesting examples of what numpy can offer at scipy org/tentative_numpy_tutorial