如何使用Numpy将百分制成绩转换为4分制GPA成绩
百分制成绩转4分制GPA Python实现
换算规则(匹配示例输出要求)
- 93~100分:4.0
- 90~92分:3.7
- 87~89分:3.3
- 83~86分:3.0
- 80~82分:2.7
- 77~79分:2.3
- 73~76分:2.0
- 70~72分:1.7
- 67~69分:1.3
- 63~66分:1.0
- 60~62分:0.7
- 60分以下:0.0
纯Python实现(无额外依赖)
def score_to_gpa(score): if score >= 93: return 4.0 elif score >= 90: return 3.7 elif score >= 87: return 3.3 elif score >= 83: return 3.0 elif score >= 80: return 2.7 elif score >= 77: return 2.3 elif score >= 73: return 2.0 elif score >= 70: return 1.7 elif score >= 67: return 1.3 elif score >= 63: return 1.0 elif score >= 60: return 0.7 else: return 0.0 # 测试示例 scores = [95, 100, 80, 42] gpa_list = [score_to_gpa(s) for s in scores] print(gpa_list) # 输出:[4.0, 4.0, 2.7, 0.0]
Numpy实现(适合批量处理大量成绩)
import numpy as np def batch_score_to_gpa(scores): scores = np.asarray(scores) gpa = np.zeros_like(scores, dtype=float) gpa[scores >= 93] = 4.0 gpa[(90 <= scores) & (scores < 93)] = 3.7 gpa[(87 <= scores) & (scores < 90)] = 3.3 gpa[(83 <= scores) & (scores < 87)] = 3.0 gpa[(80 <= scores) & (scores < 83)] = 2.7 gpa[(77 <= scores) & (scores < 80)] = 2.3 gpa[(73 <= scores) & (scores < 77)] = 2.0 gpa[(70 <= scores) & (scores < 73)] = 1.7 gpa[(67 <= scores) & (scores < 70)] = 1.3 gpa[(63 <= scores) & (scores < 67)] = 1.0 gpa[(60 <= scores) & (scores < 63)] = 0.7 return gpa.tolist() # 测试示例 scores = [95, 100, 80, 42] print(batch_score_to_gpa(scores)) # 输出:[4.0, 4.0, 2.7, 0.0]
内容的提问来源于stack exchange,提问作者Dor Cohen
相关产品推荐
相关产品推荐

