python numpy输出排名

2021-03-31 00:27

阅读:432

标签:数据   排序   import   解决问题   使用   python   tab   one   code   

python numpy排序后输出排名

问题:

假设某班的成绩为:

姓名 成绩 名次
小红 95
小黑 67
小白 58
小绿 82
小蓝 76
小橙 79
小可爱 99

请根据表格,输出对应的名次

程序:

numpy.argsort(a, axis=-1, kind=’quicksort’, order=None)

功能: 将矩阵a按照axis排序,并返回排序后的下标
参数: a:输入矩阵, axis:需要排序的维度
返回值: 输出排序后的下标

编写python程序如下,使用两次np.argsort()即可解决问题

import numpy as np 
grade = np.array([95,67,59,82,76,79,99]) # 源数据 
index = np.argsort(-grade) # 排序后的索引(负号为降序排列)
rank = np.argsort(index) # 名次
print(rank + 1) 

输出:

Out[24]:array([2, 6, 7, 3, 5, 4, 1], dtype=int64)

补全表格即可:

姓名 成绩 名次
小红 95 2
小黑 67 6
小白 58 7
小绿 82 3
小蓝 76 5
小橙 79 4
小可爱 99 1

python numpy输出排名

标签:数据   排序   import   解决问题   使用   python   tab   one   code   

原文地址:https://www.cnblogs.com/aminor/p/13573878.html


评论


亲,登录后才可以留言!