天天看點

【資料分析與智能計算】2.1 課後練習及參考答案

一、思考與練習(教材第21頁)

1.一維數組通路。

  1. 在 subjects 數組中選擇并顯示序号 1 、 2 、 4 門課的名稱,使用倒序索引選擇并顯示names 數組中“方绮雯“。
  2. 選擇并顯示 names 數組從 2 到最後的數組元素;選擇并顯示 subjects 數組正序 2~4的數組元素。
  3. 使用布爾條件選擇并顯示 subjects 數組中的英語和實體科目名稱。

2. 二維數組通路。

  1. 選擇并顯示 scores 數組的 1 、 4 行。
  2. 選擇并顯示 scores 數組中行序 2 、 4 學生的數學和 Python 成績。
  3. 選擇并顯示 scores 數組中所有學生的數學和藝術課程成績 。
  4. 選擇并顯示 scores 數組中“王微”和“劉旭陽”的英語和藝術課程成績。
  5. 生成由整數 10~19 組成的 2x5 的二維數組。

二、參考答案

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. 一維數組通路。')
print('\n1) 在 subjects 數組中選擇并顯示序号 1、 2、 4 門課的名稱,使用倒序索引選擇并顯示 names 數組中“方绮雯“。')
print(subjects[[1,2,4]])
print(names[-3])
print('\n2) 選擇并顯示 names 數組從 2 到最後的數組元素;選擇并顯示 subjects 數組正序 2~4 的數組元素。')
print(names[2::] )
print(subjects[2:5:1])
print('\n3) 使用布爾條件選擇并顯示 subjects 數組中的英語和實體科目名稱。')
print(subjects[(subjects == 'English') | (subjects == 'Physics')])
print('\n2. 二維數組通路。')
print('\nl) 選擇并顯示 scores 數組的 1、 4 行。 ')
print(scores[[1,4]])
print('\n2) 選擇并顯示 scores 數組中行序 2、 4 學生的數學和 Python 成績')
print(scores[[2,4]][:,(subjects == 'Python')])
print('\n3) 選擇并顯示 scores 數組中所有學生的數學和藝術課程成績。')
print(scores[:,(subjects == 'English') | (subjects == 'Art')])
print('\n4) 選擇并顯示 scores 數組中“王微”和“劉旭陽”的英語和藝術課程成績。 ')
print(scores[(names == '王微') | (names == '劉旭陽')] [:,(subjects == 'English') | (subjects == 'Art')])
print('\n3. 生成由整數 10~19 組成的 2x5 的二維數組。') 
print(np.arange(10,20).reshape(2,5))
           

運作結果:

1. 一維數組通路。

1) 在 subjects 數組中選擇并顯示序号 1、 2、 4 門課的名稱,使用倒序索引選擇并顯示 names 數組中“方绮雯“。
['English' 'Python' 'Art']
方绮雯

2) 選擇并顯示 names 數組從 2 到最後的數組元素;選擇并顯示 subjects 數組正序 2~4 的數組元素。
['方绮雯' '劉旭陽' '錢易銘']
['Python' 'Chinese' 'Art']

3) 使用布爾條件選擇并顯示 subjects 數組中的英語和實體科目名稱。
['English' 'Physics']

2. 二維數組通路。

l) 選擇并顯示 scores 數組的 1、 4 行。 
[[60 64 80 75 80 92 90]
 [88 72 78 90 91 73 80]]

2) 選擇并顯示 scores 數組中行序 2、 4 學生的數學和 Python 成績
[[88]
 [78]]

3) 選擇并顯示 scores 數組中所有學生的數學和藝術課程成績。
[[85 82]
 [64 80]
 [93 86]
 [82 83]
 [72 91]]

4) 選擇并顯示 scores 數組中“王微”和“劉旭陽”的英語和藝術課程成績。 
[[85 82]
 [82 83]]

3. 生成由整數 10~19 組成的 2x5 的二維數組。
[[10 11 12 13 14]
 [15 16 17 18 19]]
           

注:

  1. 關于參考答案中的形如

    scores[:,(subjects == 'English')]

    “條件篩選”,詳細分析請參考這篇部落格:【NumPy】數組的條件篩選
  2. 關于參考答案中形如

    scores[ ] [ ]

    的二次切片,請參考這篇部落格:【資料分析與智能計算】第二章:NumPy庫與數組

如果你正在學習/複習“資料分析與智能計算”這門課,或者是想要入門大資料、人工智能的同學,歡迎訂閱本專欄~

覺得有用的話,不要忘了點贊、關注、分享哦~大家多多包涵,有任何問題歡迎指正、讨論。

本文基于CC-BY-NC-SA 4.0協定,請規範轉載。

(部落格看累了?去我的B站瞧一瞧?)