chimichanga
chimichanga

Reputation: 43

Python: sorting an array with another array's elements as keys?

import numpy as np
x = np.array(range(10 * 30)).reshape(100, 3)
y = np.array(range(1010, 10, -10))
res = sorted(x, key = lambda y:y) #ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
res = sorted(x, key=y) #TypeError: 'tuple' object is not callable

Upvotes: 4

Views: 2036

Answers (1)

wisty
wisty

Reputation: 7061

Try argsort:

import numpy as np
x = np.array(range(10 * 30)).reshape(100, 3)
y = np.array(range(1010, 10, -10))
args = y.argsort(axis = 0)
print x[args]

Upvotes: 2

Related Questions