You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:54:03