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. Perform the following steps:
Now for something completely different, let's go back to Chapter 3, Get to Terms with Commonly Used Functions. In that chapter we used stock price data of AAPL. This is by now pretty old data. We will load the close prices and the always complex dates. In fact, we will need 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)
Sort the names lexically with the
lexsort
function. The data is already sorted by date, but we will now sort it by close as well.indices = np.lexsort((dates, closes)) print "Indices", indices print ["%s %s" % (datetime.date.fromordinal(dates...