import numpy as np scores = np.array( [ [88, 70, 95], [62, 91, 77], ] ) labels = np.array(["west", "east", "north", "south"]) totals = np.array([92, 88, 92, 75]) row_sorted = np.sort(scores, axis=1) column_sorted = np.sort(scores, axis=0) flat_sorted = np.sort(scores, axis=None) rank_order = np.argsort(totals, kind="stable") print("scores:") print(scores) print("row sorted:") print(row_sorted) print("column sorted:") print(column_sorted) print("flat sorted:", flat_sorted) print("rank order:", rank_order) print("labels by total:", labels[rank_order]) print("totals sorted:", totals[rank_order]) assert row_sorted.tolist() == [[70, 88, 95], [62, 77, 91]] assert column_sorted.tolist() == [[62, 70, 77], [88, 91, 95]] assert flat_sorted.tolist() == [62, 70, 77, 88, 91, 95] assert labels[rank_order].tolist() == ["south", "east", "west", "north"] assert totals[rank_order].tolist() == [75, 88, 92, 92] print("sorting checks passed")