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 – sorting lexically


The NumPy lexsort() function returns an array of indices of the input array elements corresponding to lexically sorting an array. We need to give the function an array or tuple of sort keys:

  1. Let's go back to Chapter 3, Getting Familiar with Commonly Used Functions. In that chapter, we used stock price data of AAPL. We will load the close prices and the (always complex) dates. In fact, create a converter function just for the dates:

    def datestr2num(s):
       return datetime.datetime.strptime(s, "%d-%m-%Y").toordinal()
    dates, closes=np.loadtxt('AAPL.csv', delimiter=',', usecols=(1, 6), converters={1:datestr2num}, unpack=True)
  2. Sort the names lexically with the lexsort() function. The data is already sorted by date, but sort it by close as well:

    indices = np.lexsort((dates, closes))
    print("Indices", indices)
    print(["%s %s" % (datetime.date.fromordinal(dates[i]),
      closes[i]) for i in indices])

    The code prints the following:

    Indices [ 0 16  1 17 18  4  3  2  5 28 19...