用於資料科學的 Numpy – 實戰練習

邁向 Python Numpy Library( 程式庫 ) 的第一步

從這 2.5 小時的課程,你會學到

  • 了解 Python Numpy Library (程式庫)的基礎知識
  • Numpy 陣列 – 1D、2D、3D、零( zeros )、一( ones )、完整陣列( Full Arays )等
  • Numpy Library – 隨機、Linspace、Empty、Eye、Identity、Transpose、Diagonal Function 等
  • Numpy 陣列中的索引
  • 您可以下載每個講座的影片和原始碼檔案

要求

  • 您已經具備的基本 Python 程式設計知識
  • 您可以使用其中任何一種 – Jupyter Notebook 或 PyCharm 或 Google Colab 等。

課程說明

歡迎閱讀掌握 Numerical Python(也稱為 Numpy)的綜合指南。

在本課程中,我們深入研究 Python 程式語言中的 Numpy 函式庫,在 Jupyter Notebook 中提供實戰程式編輯練習。我們的目標是揭開 Numpy 功能的神秘面紗,讓您能夠利用其強大功能進行高效的數值計算。

Numpy 陣列是 Python 數值計算的基石。它們提供了 Python 內建清單和元組的高效能替代方案,實現了閃電般快速的數學運算。在本課程中,您將探索大量 Numpy 指令,讓您具備輕鬆處理各種數值任務的技能。

讓我們踏上這段旅程,釋放 Numpy 的全部潛力並徹底改變您的數值計算方法。無論您是初學者還是經驗豐富的 Python 程式設計師,本課程都提供有價值的見解和實作練習,以提高您在數值計算方面的熟練程度。

我們將在本課程中使用的一些 Numpy 命令。

1. Import numpy as np

2. 1-D Array – A = np.array( [1,2,3,4,5] )

# 建立一維陣列。

3. 2-D Array – A = np.array( [[1,2,3],[4,5,6]] )

# 建立二維陣列。

4. 3-D Array – A = np.array( [[[1,2,3],[4,5,6],[7,8,9]]] )

# 建立三維陣列。

5. Array From List – L = np.array( [1,2,3,4,5] )

# 從清單建立陣列。

6. Array From Tuple – T = np.array( (11,22,33,44,55) )

# 從元組( tuple )建立陣列。

7. np.asarray( ) – 轉換任何資料類型 (list,tuple) 到 numpy array.

Ex : L_Array = np.asarray(list) ; T_Array = np.asarray(tuple)

8. Dynamic Array – 動態數組與陣列類似,但不同之處在於其大小可以在運行時動態修改。

9. np.array( [1,2,3,4] , ndmin = 2 , dtype = complex )

# 我們可以設定任何陣列的維度和資料類型。

10. np.arange() – A = np.arange( 1,20,3 )

# 建立數字序列。

11. Reshape () – A = A.reshape ( 3,4 )

# 重塑陣列。

12. Ndim – A.ndim

# 顯示陣列的軸數(維度/等級)。

13. shape – A.shape

# 陣列的形狀,即 矩陣、列、行(matrix, rows, columns)

14. Size – A.size

# 它顯示了總數。陣列的元素。

15. dtype – A.dtype

# 它顯示了陣列元素的資料類型。

16. itemsize – A.itemsize

# 它顯示陣列中每個元素的大小(以位元組為單位)。

17. type() – type(A)

# 它顯示了陣列的類型。

18. .data – # 它表示陣列中第一個位元組的記憶體位址。

19. strides – A.strides

# 這是 bytes (位元)的數字,其應在記憶上跳過以轉到下一個元素。

20. A = np.array( [[1,2,3], [4,5,6]] , dtype = float )

# 從 float 類型的列表建立陣列。

21. Arrays Operations – A = np.array([1,2,3,4]) , B = np.array([11,22,33,44])

A + B à [ 12 24 36 48 ] ;;

B – A à [ 10 20 30 40 ] ;;

A * B à [ 11 44 99 176 ] ;;

B / A à [ 11. 11. 11. 11. ] , OR ,

np.add(A,B) à [ 12 24 36 48 ] ;;

np.subtract(B,A) à [ 10 20 30 40 ] ;;

np.multiply(A,B) à [ 11 44 99 176 ] ;;

np.divide(B,A) à [ 11. 11. 11. 11. ]

22. Zeros Array – 所有值均為 0 的陣列

– ZA = np.zeros( (3,4) , dtype = int/float/str ) # 建立給定形狀和類型的全零值的陣列。

– 我們可以定義零數陣列( zeros array )的形狀和資料類型

– 我們可以建立 1-D、2-D 以及 3-D 零陣列。

– 預設資料型別是浮點型。

23. Ones Array – 所有值均為 1 的陣列( array )

– A = np.ones( (4,3) , dtype = int/float/str ) # 建立給定形狀和類型的全 1 值的陣列。

– 我們可以定義一個陣列的形狀和資料類型。

– 我們可以建立 1-D、2-D 以及 3-D 陣列。

– 預設資料型別是浮點型。

24. Full Value Array – 所有值都相同(常數)的陣列

– A = np.full ( (3,4), 7 ) # 建立一個 3×4 的陣列,其中各處都有一個常數值 (7)。

– 我們可以定義形狀,並將要填入的值傳遞到「full value」。

– 我們可以使用整數、浮點或字串值來建立 1-D、2-D 以及 3-D full value。

– 預設資料型別是整數。

25. Random module – 此模組包含用於產生隨機數的函數。

A. Random Function – 它會傳回 0 到 1 之間的隨機浮點數。

np.random.random((2,3)) # 它會建立一個具有隨機值的 2×3 形狀的二維陣列。

B. Randint Function

– 它在指定範圍產生隨機整數(多個)

– 以預設而言, 此範圍從 0 開始

– 此數字可重複

np.random.randint(5,20,4) # 它會建立一個給定編號的一維數組。給定輸入數字 5 和 20 之間的整數值(此處為 4)。此值可重複。

np.random.randint(5,20,(4,3)) # 它在給定的輸入數字 5 和 20 之間創建形狀為 4×3 的二維陣列。此值可重複。

C. Rand Function – 它會回傳 0 到 1 隨機浮點數數(多個)

np.random.rand(10) # 它會建立一個由 10 個 0 到 1 之間的隨機數組成的陣列。

D. Randn Function – 它以陣列形式傳回多個隨機浮點數 (正和負兩者都有) .

np.random.randn(2,3,4) # 它以陣列形式顯示值 (+/-)

E. Uniform Function

– 它傳回給定值範圍之間的隨機浮點數(多個)。

– 隨機數字不能重複。

– 預設情況下,範圍從 0 開始。

– 如果在 () 沒有任何元素通過, 它將傳回 0 到 1 之間的浮點數。

np.random.uniform(1,5,50) # 它顯示介於所給輸入數字間獨特值的給定 no.。此值不能重複。 此值為浮點形式。

F. Choice Function

– 它從給定序列返回隨機整數(多個)。

– 預設此範圍從 0 開始

– 如果只有 1 元素通過,那麼它將回傳介於零與那元素間的一個數字

– 預設情況下,replace = True,這表示數字可以重複。

np.random.choice( [2,5,8,9,1,7] , size=16 , replace=True/False) # 從給定的數字清單中建立一個包含 16 個元素的陣列; Replace = True 表示元素可以重複

np.random.normal( loc=100, scale=5 , size=10 ) # 它從常態分佈中抽取隨機樣本;

loc – 分佈平均值 ; scale -std dev of distribution ; size – 元素的數量

26. Linspace Function – np.linspace() – 它會傳回給定間隔內均勻(線性)間隔的值。

np.linspace(start, stop , num=50, endpoint=True, retstep=True, dtype=None) ;

Ex – A = np.linspace(2, 20, num=15) ; B = np.linspace (1,100,12)

27. Flatten Array – A.flatten() # 它用於獲取折疊成一維陣列的副本。

28. Empty Function – np.empty() – # 空函數用於建立給定形狀和資料類型的任意值的陣列,而不初始化條目。

A = np.empty( 4 ) ;;

B = np.empty( (5,3) , dtype=int ) ;;

C = np.empty( [2,5,3] , dtype=object )

Syntax : np.empty ( shape, dtype )

– 形狀可以以列表或元組形式給出

– 預設資料型別是浮點形式

29. 我們可以定義列和行( rows & columns )的資料類型

A = np.full( (2,3), 3, dtype = [ (‘x’,float) , (‘y’,int) ])

30. Eye Function – np.eye() – Eye Function 傳回一個二維陣列,對角線上為 1,其他位置為 0。

Syntax : np.eye(shape, k, dtype)

– 在此,如果只有 No. of Rows 被通過, 那麼 No. of Columns = No. of Rows

– K 是對角線索引,根據預設, k=0 意指主對角線( Main diagonal ) ; 當 k=positive means Upper diagonal ; 當 k=negative means Lower diagonal

– 預設資料型別是浮點形式

31. Identity Array – np.identity() – 它會傳回恆等數組,即主對角線上為 1、所有其他元素均為 0 的方陣。

Syntax : np.identity(shape, dtype)

– 它僅採用單一整數值作為形狀。

– 列數和行數將等於給定的整數值。

– 預設資料型別是浮點形式

32. Ones Like Array – 它傳回一個由 1 組成的陣列,其形狀和類型與給定陣列相同。

Syntax : np.ones_like(array, dtype)

Ex : A = np.ones_like(B) – 它將傳回一個由 1 組成的陣列 A,其形狀和類型與給定的已建立陣列 B 相同。

33. Zeros Like Array – 它傳回一個由零組成的陣列,其形狀和類型與給定陣列相同。

Syntax : np.zeros_like(array, dtype)

Ex : P = np.zeros_like(Q) – 它將傳回一個由零組成的陣列 P,其形狀和類型與給定的已建立陣列 Q 相同。

34. Full Like Array – 它傳回 Constant 元素的完整陣列,其形狀和類型與給定陣列相同。

Syntax : np.full_like(array, fill_value, dtype)

Ex : X = np.full_like(Y, 7) – 它將傳回一個填滿有常數值 7 的陣列 X,其形狀和類型與給定的已建立陣列 Y 相同。

35. Diagonal Function – 它用於提取陣列的對角線元素,或者 ,用於構造新的對角線陣列。

Syntax : np.diag(a, k)

– If ‘a’ is a 2-D array, it extracts the diagonal elements.

– If ‘a’ is a 1-D array, it constructs a 2-D array with elements of ‘a’ on diagonal.

– 預設情況下,k 為 0。對於主對角線下方的對角線使用 k<0。

36. Transpose Function – 它將列轉換為行,並將行轉換為列。

Syntax : array.T , or , np.transpose(array)

37. copy() – A = a.copy() #它會傳回陣列的副本。

38. Operators – +, – , * , / –

A = np.array([1,2,3]) ;

B = A + 1 à B = [2,3,4] ;

C = A * 2 à C = [2,4,6]

39. Transpose – a.T

# 將列轉換為行,將行轉換為列。

40. Unary Operators – 那些只需要一個運算元的運算子。假設「a」是一個陣列:

a.max() , a.max(axis=1), a.max(axis=0) , a.sum()

a.min() , a.min(axis=1) , a.min(axis=0) , np.sum(a, axis=1)

# 透過設定軸參數,可以按行或按列應用這些函數。

41. stack – c = np.stack( (a,b) )

# 它使用數組作為列( rows )來創建一個矩陣。

42. column_stack – c = np.column_stack( (a,b) )

#它使用數組作為行( columns )來創建一個矩陣。

43. V-Stack and H-Stack – Vstack 或 Hstack 是用來組合兩個或多個陣列以形成一個新陣列。

43.A) vstack – c = np.vstack( (a,b) )

# 它垂直附加資料。 a 和 b 是陣列。

43.B) hstack – c = np.hstack( (a,b) )

# 它水平地附加資料。 a 和 b 是陣列。

44. Array Indexing – 索引用於從 numpy 陣列中取得特定元素( elements )、列( rows )或行( columns )。

在這裡,我們傳遞元素的索引來存取它。索引從 0 開始,而不是從 1 開始。它會傳回元素直到「stop index – 1」索引。

Indexing in 1-D Array : Format – array[start index : stop index]

Indexing in 2-D Array : Format – array[row_indexing, column_indexing]

Indexing in 3-D Array : Format – array[matrix_indexing, row_indexing, column_indexing]

Ex – a[1:2,1:2,1:2] # 由於陣列可能是多維的,因此我們必須為陣列的每個維度指定一個切片。

45. Mix-Integer Indexing – a[1,1:2,1:2]

# 將整數索引與切片索引混合會產生較低等級的陣列。然而,僅使用切片,它會產生與原始數組具有相同等級的數組。

46. Integer Array Indexing – a[[0,1,2],[0,1,0]]

# 它允許我們使用另一個數組中的資料構造任意(隨機選擇)數組。

47. Boolean Array Indexing – a[a>2]

# 它用於計算向量的內積、將向量乘以矩陣以及將矩陣相乘。

48. .dot()

# 它用於計算向量的內積、將向量乘以矩陣以及將矩陣相乘。

49. np.any(x > 0.9)

# 它檢查是否有任何值大於 0.9 in x. ( x = np.random.random(10))

50. np.all(x >= 0.9)

# 它檢查所有值是否大於或等於 0.1 in x. ( x = np.random.random(10))

51. array_A[array_A == x] = y

# 將給定 array_A 中的所有 x 替換為 y。

52. a[[2,4]] or a[(1,3),:]

# 取得矩陣第二列( row )和第四列( row )的值。

53. 從矩陣中取得結果: a.sum(), a.std(), a.var(), a.mean(), a.max(), a.min()

目標受眾

  • 對 Python 有興趣的資料科學初學者

講師簡介

Data Science Lovers 進階資料分析師

大家好,我是資深資料分析師。

我曾使用 Python 參與各種數據分析專案。

我嘗試以非常簡單的方式解釋所有概念,以便即使初學者也能毫無疑問地理解和學習。

繼續和我們一起學習,你會喜歡閱讀的。

太感謝了

字幕:英文

  • 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To

  • Udemy 永久擁有課程 NT310 起特價中(點擊連結看更多)
  • 年訂閱每月 NT350( 限時優惠價NT245/月) 🌈 悠遊 Udemy 的 26000+ 門課,最大化學習 ( 原價 NT635/月 )
  • Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
  • 手機上點選優惠連結看到的價格比電腦上看到的貴
  • $代表當地貨幣, 如在台灣為 NT
  • 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現

報名參加課程

Sponsored by Udemy


也許你會有興趣

不受 FB 演算法影響,歡迎透過 e-mail 訂閱網站更新

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

由 WordPress.com 建置.

Up ↑

探索更多來自 Soft & Share 的內容

立即訂閱即可持續閱讀,還能取得所有封存文章。

Continue reading