【数据分析与智能计算】2.2 课后练习及答案讲解

一、思考与练习(教材第26页)

1.将 scores 数组中所有学生的英语成绩减去 3 分并显示。
2 .统计 scores 数组中每名学生所有科目的平均分并显示。
3 .使用随机函数生成 [-1, 1]之间服从均匀分布的 3x4 二维数组,并计算所有元素的和。

二、参考答案

# 数据准备
import numpy as np
names = np.array(['王微','肖良英',"方绮雯",'刘旭阳','钱易铭'])
subjects = np.array(['Math', 'English', 'Python', 'Chinese', 'Art', 'Database', 'Physics'])
scores = np.array([[70,85,77,90,82,84,89],[60,64,80,75,80,92,90],[90,93,88,87,86,90,91],[80,82,91,88,83,86,80],[88,72,78,90,91,73,80]])
# 第一题
print('1. 将 scores 数组中所有学生的英语成绩减去 3 分并显示。 ')
print(scores[:, subjects == 'Art'] -3)
# 第二题
print('\n2. 统计 scores 数组中每名学生所有科目的平均分并显示。 ')
for i in range(0,5) :
    print(scores[i].mean())
# 第三题  
print('\n3. 使用随机函数生成[-1,1]之间服从均匀分布的 3x4 二维数组,并计算所有元素的和。')
uni = np.random.uniform(-1,1,(3,4))
print(uni)
print(uni.sum())

输出结果:

1. 将 scores 数组中所有学生的英语成绩减去 3 分并显示。 
[[79]
 [77]
 [83]
 [80]
 [88]]

2. 统计 scores 数组中每名学生所有科目的平均分并显示。 
82.42857142857143
77.28571428571429
89.28571428571429
84.28571428571429
81.71428571428571

3. 使用随机函数生成[-1,1]之间服从均匀分布的 3x4 二维数组,并计算所有元素的和。
[[-0.5434021  -0.0569449  -0.10984966 -0.90260813]
 [-0.01882247 -0.46660599  0.52140256  0.42474122]
 [ 0.3122958  -0.06197657 -0.26717631 -0.08292239]]
-1.2518689400759253

三、讲解

第三题用到了一个我们不太熟悉的函数np.random.uniform(),具体用法如下:

函数原型:numpy.random.uniform(low,high,size)
low: 采样下界,float类型,默认值为0;
high: 采样上界,float类型,默认值为1;
size: 输出样本数目,为int或元组(tuple)类型,例如,size=(m,n,k), 则输出m*n*k个样本,缺省时输出1个值。

如果你正在学习/复习“数据分析与智能计算”这门课,或者是想要入门大数据、人工智能的同学,欢迎订阅本专栏~
觉得有用的话,不要忘了点赞、关注、分享哦~大家多多包涵,有任何问题欢迎指正、讨论。
本文基于CC-BY-NC-SA 4.0协议,请规范转载。
(博客看累了?去我的B站瞧一瞧?)

猜你喜欢

转载自blog.csdn.net/qq_27133869/article/details/106359019