【數據分析與智能計算】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站瞧一瞧?)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章