我创建了2个变量。一个保存200个随机生成的年龄,另一个保存200个随机生成的标记。
from numpy import *
age = random.random_integers(18,40, size=(1,200))
marks = random.random_integers(0,100, size=(1,200))
我想使用NumPy按age数组对marks数组进行排序。例如:
#random student ages
[32 37 53 48 39 44 33 40 56 47]
#random student marks
[167 160 176 163 209 178 201 164 190 156]
#sorted marked according to ages
[32 33 37 39 40 44 47 48 53 56]
[167 201 160 209 164 178 156 163 176 190]
这与this问题类似。我只是不确定是否由于元素随机生成而采用了类似的解决方案。
最佳答案
一种方法是首先通过argsort
计算顺序,然后使用该索引来索引输入数组:
import numpy as np
np.random.seed(0)
ages = np.random.randint(18, 40, size=10) # [30 33 39 18 21 21 25 27 37 39]
marks = np.random.randint(0, 100, size=10) # [36 87 70 88 88 12 58 65 39 87]
order = ages.argsort() # [3 4 5 6 7 0 1 8 2 9]
print(ages[order]) # [18 21 21 25 27 30 33 37 39 39]
print(marks[order]) # [88 88 12 58 65 36 87 39 70 87]