MST

星途 面试题库

面试题:Python中NumPy多维度数据的统计分析

假设有一个三维的NumPy数组,形状为(5, 4, 3),分别代表5个小组,每个小组4个学生,每个学生3门课的成绩。请用NumPy计算每个小组学生所有课程成绩的中位数,并给出能清晰说明计算逻辑的Python代码。
49.7万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import numpy as np

# 创建一个形状为(5, 4, 3)的三维NumPy数组模拟数据
data = np.random.randint(0, 100, size=(5, 4, 3))

# 计算每个小组学生所有课程成绩的中位数
# axis=1表示沿着第二个维度(即每个小组内的学生维度)进行计算,axis=2表示沿着第三个维度(即课程维度)进行计算
# 这里先将每个小组内所有学生的所有课程成绩合并在一起,再计算中位数
median_scores = np.median(data, axis=(1, 2))

print(median_scores)

计算逻辑:

  1. 首先使用np.random.randint创建一个形状为(5, 4, 3)的随机整数数组data来模拟成绩数据。
  2. 然后通过np.median函数计算中位数,axis=(1, 2)参数指定了在第二个维度(学生维度)和第三个维度(课程维度)上进行计算。这样就可以将每个小组内所有学生的所有课程成绩合并起来计算中位数,最终得到每个小组学生所有课程成绩的中位数。