假设学生最终成绩是由平时成绩的30%和期末成绩的70%构成,如下图所示, 试运用线性代数模块中NumPy提供的用于矩阵乘法的dot()方法,程序实现学生期末成绩的输出。
时间: 2024-02-01 22:15:18 浏览: 63
假设平时成绩和期末成绩已经存储在两个NumPy数组中,可以通过以下代码计算学生期末成绩:
```python
import numpy as np
# 定义平时成绩和期末成绩
daily_grades = np.array([80, 85, 90, 75, 70])
final_grades = np.array([85, 90, 92, 80, 88])
# 定义权重矩阵
weights = np.array([0.3, 0.7])
# 计算期末成绩
final_scores = np.dot(weights, np.vstack((daily_grades, final_grades)))
# 输出期末成绩
print(final_scores)
```
解释一下代码:
- 第3行和第4行定义了平时成绩和期末成绩的NumPy数组;
- 第7行定义了权重矩阵,其中0.3表示平时成绩的权重,0.7表示期末成绩的权重;
- 第10行使用NumPy的vstack()方法将平时成绩和期末成绩合并成一个二维数组;
- 第11行使用NumPy的dot()方法计算权重矩阵和合并后的二维数组的乘积,得到每个学生的期末成绩;
- 第14行输出期末成绩。
需要注意的是,在计算期末成绩前,需要将平时成绩和期末成绩合并成一个二维数组,这可以通过NumPy的vstack()方法实现。同时,NumPy的dot()方法只能计算二维数组的乘积,因此需要将权重矩阵定义为一维数组。
阅读全文