當前位置:
首頁 > 最新 > 70個NumPy練習:在Python下一舉搞定機器學習矩陣運算

70個NumPy練習:在Python下一舉搞定機器學習矩陣運算

GIF

翻譯| 王柯凝

責編 | suisui

【導讀】Numpy是一個開源的Python科學計算庫,專用於存儲和處理大型矩陣,相比Python自身的嵌套列表結構要高效很多,是數據分析、統計機器學習的必備工具。Numpy還是深度學習工具Keras、sk-learn的基礎組件之一。

此處的70個numpy練習,可以作為你學習numpy基礎之後的應用參考。練習難度分為4層:從1到4依次增大。

快來試試你的矩陣運算掌握到了什麼程度:

1.導入模塊numpy並以np作為別名,查看其版本

難度:1

問題:導入模塊numpy並以np作為別名,列印版本號

答案:

你必須將模塊numpy導入,以np命名,練習中的其他代碼才能正常運行。

安裝numpy,建議使用anaconda提供的安裝方案。

anaconda鏈接:https://www.anaconda.com/download/

2.如何創建一個一維數組?

難度:1

問題:創建一個含有從0到9數字的一維數組,並輸出

答案:

3.如何創建布爾數組?

難度:1

問題:創建一個3×3的所有值為True的numpy數組。

答案:

4.如何從1維數組中提取滿足給定條件的元素?

難度:1

問題:從arr數組中提取所有奇數元素。

輸入:

輸出:

答案:

5.在numpy數組中,如何用另一個值替換滿足條件的元素?

難度:1

問題:用-1替換arr數組中所有的奇數。

輸入:

輸出:

答案:

6.如何替換滿足條件的元素而不影響原始數組?

難度:2

問題:將arr數組中的所有奇數替換為-1而不更改arr數組

輸入:

輸出:

答案:

7.如何重塑數組?

難度:1

問題:將1維數組轉換為2行的2維數組

輸入:

輸出:

答案:

8.如何垂直堆疊兩個數組?

難度:2

問題:垂直堆疊數組a和b。

輸入:

輸出:

答案:

9.如何水平堆疊兩個數組?

難度:2

問題:水平堆疊數組a和b。

輸入:

輸出:

答案:

10.沒有硬編碼的情況下,在numpy中如何生成自定義序列?

難度:2

問題:創建以下模式而不使用硬編碼。只能使用numpy函數和輸入數組a。

輸入:

輸出:

答案:

11.如何獲得兩個python numpy數組之間的共同元素?

難度:2

問題:獲取數組a和b之間的共同元素。

輸入:

輸出:

答案:

12.從一個數組中刪除存在於另一個數組中的元素?

難度:2

問題:從數組a中刪除在數組b中存在的所有元素。

輸入:

輸出:

答案:

13.獲取兩個數組元素匹配的索引號。

難度:2

問題:獲取數組a和b的元素匹配的索引號

輸入:

輸出:

答案:

14.從numpy數組中提取給定範圍內的所有數字?

難度:2

問題:從數組a提取5到10之間的所有元素。

輸入:

輸出:

答案:

15.如何將處理標量的python函數在numpy數組上運行?

難度:2

問題:將處理兩個標量函數maxx在兩個數組上運行。

輸入:

輸出:

答案:

16.如何交換2維numpy數組中的兩個列?

難度:2

問題:交換數組arr中的第1列和第2列。

答案:

17.如何交換2維numpy數組中的兩個行?

難度:2

問題:在數組arr中交換第1行和第2行。

答案:

18.如何反轉2維數組的行?

難度:2

問題:反轉二維數組arr的行。

答案:

19.如何反轉二維數組的列?

難度:2

問題:顛倒二維數組arr的列。

答案:

20.如何創建一個包含5到10之間隨機浮點數的二維數組?

難度:2

問題:創建一個5×3的二維數組,以包含5到10之間的隨機浮點數。

答案:

21.列印python numpy數組並保留3位小數?

難度:1

問題:列印或顯示numpy數組rand_arr,並三位小數。

輸入:

答案:

22.如何使用科學記數法(如1e10)漂亮地列印一個numpy數組?

難度:1

問題:使用科學記數法(如1e10)漂亮的列印數組rand_arr

輸入:

輸出:

答案:

23.如何限制numpy數組輸出中列印元素的數量?

難度:1

問題:將python numpy數組a中列印的元素數量限制為最多6個。

輸入:

輸出:

答案:

24.如何在不截斷的情況下列印完整的numpy數組?

難度:1

問題:列印完整的numpy數組a,且不截斷。

輸入:

輸出:

答案:

25.如何在python numpy中導入含有數字和文本的數據集,並保持的文本完整性?

難度:2

問題:導入iris數據集並保持文本不變。

答案:

由於我們想保留物種,一個文本欄位,我已經把dtype設置為object。設置dtype = None,則會返回一維元組數組。

26.如何從一維元組數組中提取特定的列?

難度:2

問題:從上一個問題中導入的一維iris數組中提取species文本列。

輸入:

答案:

27.如何將一維元組數組轉換為二維numpy數組?

難度:2

問題:通過省略species文本欄位將一維iris數組轉換為二維數組iris_2d。

輸入:

答案:

28.如何計算numpy數組的平均值,中位數,標準差?

難度:1

問題:找出 iris的 sepallength平均值,中位數,標準差(第1列)

答案:

29.如何標準化一個數組至0到1之間?

難度:2

問題:創建一個規範化形式的iris的sepallength,其值的範圍在0和1之間,最小值為0,最大值為1。

輸入:

答案:

30.如何計算softmax值?

難度:3

問題:計算sepallength的softmax分數。

答案:

31.如何找到一個numpy數組的百分位的值?

難度:1

問題:找到iris的sepallength第5位和第95百分位的值。

答案:

32.如何在數組中的隨機位置插入一個值?

難度:2

問題:在iris_2d數據集的20個隨機位插入np.nan值

答案:

33.如何找到numpy數組中缺失值的位置?

難度:2

問題:在iris_2d的sepallength(第1列)中查找缺失值的數量和位置。

答案:

34.如何根據兩個或多個條件過濾一個numpy數組?

難度:3

問題:過濾具有petallength(第3列)> 1.5和sepallength(第1列)

答案:

35.如何從numpy數組中刪除包含缺失值的行?

難度:3:

問題:選擇沒有nan值的iris_2d數組的行。

答案:

36.如何找到numpy數組的兩列之間的相關性?

難度:2

問題:在iris_2d數組中查找SepalLength(第1列)和PetalLength(第3列)之間的關係。

答案:

37.如何查找給定數組是否有空值?

難度:2

問題:找出數組iris_2d是否有缺失的值。

答案:

38.如何在numpy數組中使用0替換所有缺失值?

難度:2

問題:在numpy數組中用0替換nan。

答案:

39.如何查找numpy數組中的唯一值的數量?

難度:2

問題:找出iris的species中的唯一值及其數量。

答案:

40.如何將數值轉換為分類(文本)數組?

難度:2

問題:將iris_2d的花瓣長度(第3列)組成一個文本數組,如果花瓣長度為:

3-5則為"中"

"> = 5則為"大"

答案:

41.如何從numpy數組的現有列創建一個新的列?

難度:2

問題:在iris_2d中為volume創建一個新列,其中volume是(pi x petallength x sepal_length ^ 2)/ 3。

答案:

42.如何在numpy中進行概率抽樣?

難度:3

問題:隨機抽樣iris的species,使setose是versicolor和virginica的數量的兩倍。

答案:

方法2是首選,因為它創建了一個可用於採樣二維表格數據的索引變數。

43.用另一個數組分組時,如何獲得數組中第二大的元素值?

難度:2

問題:第二長的物種的最大價值是什麼?

答案:

44.如何按列排序二維數組?

難度:2

問題:根據sepallength列對iris數據集進行排序。

答案:

45.如何在numpy數組中找到最頻繁出現的值?

難度:1

問題:找到iris數據集中最常見的花瓣長度值(第3列)。

輸入:

答案:

46.如何找到首次出現的值大於給定值的位置?

難度:2

問題:查找在iris數據集的第4列花瓣寬度中第一次出現值大於1.0的位置。

答案:

47.如何將所有大於給定值的值替換為給定的cutoff值?

難度:2

問題:從數組a中,替換大於30包括30且小於10到10的所有值。

輸入:

答案:

48.如何從numpy數組中獲取n個值的位置?

難度:2

問題:獲取給定數組a中前5個最大值的位置。

答案:

49.如何計算數組中所有可能值的行數?

難度:4

問題:計算有唯一值的行數。

輸入:

輸出:

輸出包含10列,表示1到10之間的數字。這些值是相應行中數字數量。

例如,單元(0,2)的值為2,這意味著數字3在第一行中恰好出現2次。

答案:

50.如何將多維數組轉換為平坦的一維數組?

難度:2

問題:將array_of_arrays轉換為平坦的線性一維數組。

輸入:

輸出:

答案:

51.如何為numpy中的數組生成獨熱編碼?

難度:4

問題:計算獨熱編碼。

輸入:

輸出:

答案:

52.如何創建按分類變數分組的行號?

難度:3

問題:創建由分類變數分組的行號。使用iris的species中的樣品作為輸入。

輸入:

輸出:

答案:

53.如何根據給定的分類變數創建分組ID?

難度:4

問題:根據給定的分類變數創建組ID。使用以下iris的species中樣品作為輸入。

輸入:

輸出:

答案:

54.如何使用numpy排列數組中的元素?

難度:2

問題:為給定的數字數組a排序。

輸入:

輸出:

答案:

55.如何使用numpy對多維數組中的元素進行排序?

難度:3

問題:創建一個與給定數字數組a相同形式的排列數組。

輸入:

輸出:

答案:

56.如何找到numpy二維數組每一行中的最大值?

難度:2

問題:計算給定數組中每一行的最大值。

答案:

57.如何計算numpy二維數組每行中的最小值?

難度:3

問題:針對給定的二維numpy數組計算每行的min-max。

答案:

58.如何在numpy數組中找到重複的記錄?

難度:3

問題:在給定的numpy數組中找到重複的條目(從第2個起),並將它們標記為True。第一次出現應該是False。

輸出:

答案:

59.如何找到numpy中的分組平均值?

難度:3

問題:查找由二維numpy數組中的分類列分組的數值列的平均值

輸入:

輸出:

答案:

60.如何將PIL圖像轉換為numpy數組?

難度:3

問題:從以下URL中導入圖像並將其轉換為numpy數組。

URL="https://upload.wikimedia.org/wikipedia/commons/8/8b/Denali_Mt_McKinley.jpg"

答案:

61.如何從一個numpy數組中刪除所有缺失的值?

難度:2

問題:從一維numpy數組中刪除所有nan值

輸入:

輸出:

答案:

62.如何計算兩個數組之間的歐氏距離?

難度:3

問題:計算兩個數組a和b之間的歐式距離。

輸入:

答案:

63.如何在一維數組中找到所有局部最大值(或峰值)?

難度:4

問題:在一維numpy數組a中查找所有峰值。峰值是兩側較小值包圍的點。

輸入:

輸出:

其中,2和5是峰值7和6的位置。

答案:

64.如何從二維數組中減去一維數組,其中一維數組的每個元素都從相應的行中減去?

難度:2

問題:從二維數組a_2d中減去一維數組b_1d,使得每個b_1d項從a_2d的相應行中減去。

輸出:

答案:

65.如何找到數組中第n個重複項的索引

難度:2

問題:找出x中第1個重複5次的索引。

答案:

66.如何將numpy的datetime64對象轉換為datetime的datetime對象?

難度:2

問題:將numpy的datetime64對象轉換為datetime的datetime對象。

答案:

67.如何計算numpy數組的移動平均值?

難度:3

問題:計算給定一維數組窗口大小為3的移動平均值。

輸入:

答案:

68.如何只給出起點,長度和步長來創建一個numpy數組序列?

難度:2

問題:創建一個長度為10的numpy數組,從5開始,在連續數字之間有一個3的步長。

答案:

69.如何填寫不規則的numpy日期系列中的缺失日期?

難度:3

問題:給定一個不連續的日期數組。通過填補缺失的日期,使其成為連續的日期序列。

輸入:

答案:

70.如何在給定一個一維數組中創建步長?

難度:4

問題:從給定的一維數組arr,使用步長生成一個二維數組,窗口長度為4,步長為2,如[[0,1,2,3],[2,3,4,5],[4,5,6,7]..]

輸入:

輸出:

答案:

原文地址:

https://www.machinelearningplus.com/101-numpy-exercises-python/


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器學習 的精彩文章:

人工智慧及機器學習與深度學習揭秘
你是否有音樂天賦?讓機器學習來告訴你

TAG:機器學習 |