Book Image

NumPy: Beginner's Guide

By : Ivan Idris
Book Image

NumPy: Beginner's Guide

By: Ivan Idris

Overview of this book

Table of Contents (21 chapters)
NumPy Beginner's Guide Third Edition
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
NumPy Functions' References
Index

Time for action – avoiding loops with vectorize()


The vectorize() function is a yet another trick to reduce the number of loops in your programs. Calculate the profit of a single trading day following these steps:

  1. First, load the data:

    o, h, l, c = np.loadtxt('BHP.csv', delimiter=',', usecols=(3, 4, 5, 6), unpack=True)
  2. The vectorize() function is the NumPy equivalent of the Python map() function. Call the vectorize() function, giving it as an argument the calc_profit() function:

    func = np.vectorize(calc_profit)
  3. We can now apply func() as if it is a function. Apply the func() function result that we got to the price arrays:

    profits = func(o, h, l, c)
  4. The calc_profit() function is pretty simple. First, we try to buy slightly below the open price. If this is outside of the daily range, then, obviously, our attempt failed and no profit was made, or we incurred a loss, therefore, will return 0. Otherwise, we sell at the close price and the profit is simply the difference between the buy price and the...