假设有一张成绩表记录了10名学生的语文、数学、英语、生物、历史这5门课的成绩,成绩范围均为50~100分。10名学生的学号分别为100、101、102、103、104、105、106、107、108、109。利用 numpy.完成一下操作: (1)使用随机数模拟学生成绩,并存储在数组中。 (2)查询学号为105的学生的英语成绩。 (3)查询学号为100、102、105、109的4位学生的语文、数学和英语成绩。
时间: 2023-07-04 12:11:21 浏览: 179
好的,以下是你想要的代码:
```python
import numpy as np
# 生成10名学生的5门课的成绩
grades = np.random.randint(50, 101, size=(10, 5))
# 学号列表
ids = [100, 101, 102, 103, 104, 105, 106, 107, 108, 109]
# 查询学号为105的学生的英语成绩
eng_grade = grades[ids.index(105), 2]
print("学号为105的学生的英语成绩为:", eng_grade)
# 查询学号为100、102、105、109的4位学生的语文、数学和英语成绩
selected_grades = grades[[ids.index(100), ids.index(102), ids.index(105), ids.index(109)], :3]
print("学号为100、102、105、109的学生的语文、数学和英语成绩为:\n", selected_grades)
```
输出结果:
```
学号为105的学生的英语成绩为: 56
学号为100、102、105、109的学生的语文、数学和英语成绩为:
[[ 72 71 58]
[ 88 50 80]
[ 71 66 56]
[ 58 50 100]]
```
希望能对你有所帮助!
相关问题
假设有一张成绩表记录了10名学生的语文数学英语生物历史这五门课的成绩,成绩范围均为50~100。10名学生的学号分别为100、101、102、103、104、105、106、107、108、109。利用numpy完成下列操作:(1)使用随机数模拟学生成绩,并储存在数组中;(2)查询学号为105的学生的英语成绩;(3)查询学号为100、102、105、109的4位学生的语文数学和英语成绩
好的,我可以帮你解决这个问题。
首先,我们需要导入numpy库:
```python
import numpy as np
```
然后,我们可以使用`numpy.random.randint()`函数生成10名学生的成绩,并将其存储在一个10x5的数组中:
```python
grades = np.random.randint(50, 101, size=(10, 5))
```
这里使用`numpy.random.randint()`函数生成50~100之间的整数随机数,生成的随机数以10x5的数组形式存储在`grades`变量中。
接下来,我们可以使用下标索引查询学号为105的学生的英语成绩:
```python
english_grade = grades[5, 2]
print("学号为105的学生的英语成绩为:", english_grade)
```
这里我们使用`grades[5, 2]`来获取第6行第3列的元素,即学号为105的学生的英语成绩。
最后,我们可以使用下标索引同时查询学号为100、102、105、109的4位学生的语文数学和英语成绩:
```python
selected_grades = grades[[0, 2, 5, 9]][:, :3]
print("学号为100、102、105、109的学生的语文数学和英语成绩为:\n", selected_grades)
```
这里我们使用`grades[[0, 2, 5, 9]][:, :3]`来获取第1、3、6、10行的前3列元素,即学号为100、102、105、109的学生的语文数学和英语成绩。
完整代码如下:
```python
import numpy as np
grades = np.random.randint(50, 101, size=(10, 5))
english_grade = grades[5, 2]
selected_grades = grades[[0, 2, 5, 9]][:, :3]
print("学号为105的学生的英语成绩为:", english_grade)
print("学号为100、102、105、109的学生的语文数学和英语成绩为:\n", selected_grades)
```
假设有一张成绩表记录了10名学生的语文、数学、英语、生物、历史这5门课的成绩,成绩范围均为50~100分。10名学生的学号分别100,101,102,103,104,105,106,107,108,109。 要求:利用NumPy数组完成以下操作。随
机生成10个学生的成绩,然后完成以下操作:
1. 将成绩存储在一个10行5列的NumPy数组中,并输出该数组。
2. 计算每个学生的平均成绩,并输出平均成绩。
3. 计算每门课程的平均成绩,并输出平均成绩。
以下是代码实现:
```python
import numpy as np
# 生成10个学生的成绩
scores = np.random.randint(50, 101, size=(10, 5))
# 输出成绩数组
print("成绩数组:\n", scores)
# 计算每个学生的平均成绩
student_avg = np.mean(scores, axis=1)
print("每个学生的平均成绩:\n", student_avg)
# 计算每门课程的平均成绩
course_avg = np.mean(scores, axis=0)
print("每门课程的平均成绩:\n", course_avg)
```
输出结果如下:
```
成绩数组:
[[ 85 91 70 78 80]
[ 96 95 63 71 64]
[ 69 62 76 77 68]
[ 71 60 56 54 95]
[ 86 67 60 83 56]
[ 67 51 70 71 84]
[ 61 52 56 53 75]
[ 70 94 72 70 59]
[ 87 92 96 54 71]
[ 64 97 59 67 96]]
每个学生的平均成绩:
[80.8 77.8 70.4 67.2 70.4 68.6 59.4 73. 80. 76.6]
每门课程的平均成绩:
[74.6 77.1 67.2 68.1 73.4]
```
阅读全文