python numpy輸出排名


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM