NumPy Vectorization
This lesson teaches Numpy vectorization and explains it with a simple example using object-oriented, procedural and vectorized approach.
We'll cover the following
Vectorization, in simple words, means optimizing the algorithm so that it can run multiple operations from a single instruction. NumPy is all about vectorization. If you are familiar with Python, this is the main difficulty you’ll face because you’ll need to change your way of thinking and your new friends (among others) are named “vectors”, “arrays”, “views” or "ufuncs".
Note: A custom magic command timeit is used in all codes. It’s a tool for measuring the execution time of small code snippets.
Object Oriented Approach
Let’s take a very simple example, a random walk. One possible object-oriented
approach would be to define a RandomWalker
class and write a walk
method that would return the current position after each (random) step. It’s nice,
it’s readable, but it is slow: