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

成绩计算程序开发:实现5个最高与最低成绩的计算需求

数据集成绩统计程序扩展实现

原代码问题修正

原代码中max(nums)[0]与min(nums)[0]仅取了各子列表第一个元素的最大/最小值,并非所有成绩中的极值。需先将二维成绩列表扁平化,才能正确统计整体成绩的各项指标。

扩展功能实现

1. 获取5个最高成绩

将所有成绩合并为一维列表后,可通过高效分区或排序的方式提取前5个最高值;

2. 获取5个最低成绩

同理,扁平化成绩列表后提取前5个最低值。

完整代码实现

# Evan Gertis
# 09/15/2022
# frequency_distribution.py
import numpy as np

nums = [[68,84,75,82,68,90,62,88,76,93],[73, 79, 88, 73, 60, 93, 71, 59, 85, 75],[61,65,75, 87,74, 62, 95, 78, 63, 72],[66,78,82,75,94,77,69,74,68,60],[96,78,89,61,75,95,60,79,83,71],[79,62,67,97,78,85,76,65,71,75],[65,80,73,57,88,78,62,76,53,74],[86,67,73,81,72,63,76,75,85,77]]

# 扁平化二维成绩列表,得到所有成绩的一维数组
all_scores = np.array(nums).flatten()

# 计算基础指标:最高成绩、最低成绩、成绩范围
max_score = all_scores.max()
min_score = all_scores.min()
score_range = max_score - min_score

print("The highest grade is:")
print(max_score)
print("The lowest grade is:")
print(min_score)
print("The range is:")
print(score_range)

# 获取并输出5个最高成绩(降序排列)
top_5 = np.partition(all_scores, -5)[-5:]
top_5_sorted = np.sort(top_5)[::-1]
print("\nTop 5 highest grades:")
print(top_5_sorted)

# 获取并输出5个最低成绩(升序排列)
bottom_5 = np.partition(all_scores, 5)[:5]
bottom_5_sorted = np.sort(bottom_5)
print("\nBottom 5 lowest grades:")
print(bottom_5_sorted)

关键代码说明

  • np.array(nums).flatten():将二维列表转换为一维numpy数组,简化批量统计操作;
  • np.partition:相比全排序更高效,仅将数组分为指定位置的左右两部分,适合快速提取前N/后N个元素;
  • 排序步骤:对提取的极值组进行二次排序,输出更直观的顺序。

内容的提问来源于stack exchange,提问作者Evan Gertis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 10:05:25