NumPy(Numerical Python)是一個開源的Python科學計算庫,提供了多維數組對象和對數組進行操作的工具。它是Python數據科學生態系統的核心庫之一,被廣泛用于科學計算、數據分析和機器學習等領域。本文將逐一解析NumPy庫中的常用函數,包括數組創建、數組操作、數學函數、統計函數和線性代數等方面,并提供具體的代碼示例。
- 數組創建
NumPy提供了多種創建數組的方法,可以通過指定維度、數據類型以及初始化值等方式來創建數組。常用的函數有:
1.1 numpy.array():從列表或元組中創建數組。
import numpy as np arr = np.array([1, 2, 3, 4, 5]) print(arr) # 輸出:[1 2 3 4 5]
登錄后復制
1.2 numpy.zeros():創建指定維度的全零數組。
import numpy as np arr = np.zeros((3, 4)) print(arr) """ 輸出: [[0. 0. 0. 0.] [0. 0. 0. 0.] [0. 0. 0. 0.]] """
登錄后復制
1.3 numpy.ones():創建指定維度的全一數組。
import numpy as np arr = np.ones((2, 3)) print(arr) """ 輸出: [[1. 1. 1.] [1. 1. 1.]] """
登錄后復制
1.4 numpy.arange():創建等差數組。
import numpy as np arr = np.arange(0, 10, 2) print(arr) # 輸出:[0 2 4 6 8]
登錄后復制
- 數組操作
NumPy提供了許多數組操作的函數,包括形狀操作、索引和切片、擴展和堆疊以及數組轉置等。常用的函數有:
2.1 reshape():改變數組的形狀。
import numpy as np arr = np.array([[1, 2, 3], [4, 5, 6]]) new_arr = arr.reshape((3, 2)) print(new_arr) """ 輸出: [[1 2] [3 4] [5 6]] """
登錄后復制
2.2 indexing和slicing:通過索引和切片操作數組。
import numpy as np arr = np.array([1, 2, 3, 4, 5]) print(arr[2]) # 輸出:3 print(arr[1:4]) # 輸出:[2 3 4] print(arr[:3]) # 輸出:[1 2 3] print(arr[-3:]) # 輸出:[3 4 5]
登錄后復制
2.3 concatenate():將兩個或多個數組進行拼接。
import numpy as np arr1 = np.array([1, 2, 3]) arr2 = np.array([4, 5, 6]) arr = np.concatenate((arr1, arr2)) print(arr) # 輸出:[1 2 3 4 5 6]
登錄后復制
2.4 transpose():對數組進行轉置。
import numpy as np arr = np.array([[1, 2], [3, 4]]) new_arr = np.transpose(arr) print(new_arr) """ 輸出: [[1 3] [2 4]] """
登錄后復制
- 數學函數
NumPy提供了豐富的數學函數,如數值運算、三角函數、對數函數、指數函數等。常用的函數有:
3.1 np.mean():計算數組的平均值。
import numpy as np arr = np.array([1, 2, 3, 4, 5]) mean = np.mean(arr) print(mean) # 輸出:3.0
登錄后復制
3.2 np.sin():計算數組元素的正弦值。
import numpy as np arr = np.array([0, np.pi/2, np.pi]) sin = np.sin(arr) print(sin) # 輸出:[0. 1. 1.2246468e-16]
登錄后復制
3.3 np.exp():對數組元素進行指數運算。
import numpy as np arr = np.array([1, 2, 3]) exp = np.exp(arr) print(exp) # 輸出:[ 2.71828183 7.3890561 20.08553692]
登錄后復制
- 統計函數
NumPy提供了常用的統計函數,包括最大值、最小值、中位數、方差和標準差等。常用的函數有:
4.1 np.max():計算數組的最大值。
import numpy as np arr = np.array([1, 2, 3, 4, 5]) max_value = np.max(arr) print(max_value) # 輸出:5
登錄后復制
4.2 np.min():計算數組的最小值。
import numpy as np arr = np.array([1, 2, 3, 4, 5]) min_value = np.min(arr) print(min_value) # 輸出:1
登錄后復制
4.3 np.median():計算數組的中位數。
import numpy as np arr = np.array([1, 2, 3, 4, 5]) median = np.median(arr) print(median) # 輸出:3.0
登錄后復制
4.4 np.var():計算數組的方差。
import numpy as np arr = np.array([1, 2, 3, 4, 5]) variance = np.var(arr) print(variance) # 輸出:2.0
登錄后復制
- 線性代數
NumPy提供了基本的線性代數運算函數,如矩陣乘法、矩陣求逆、矩陣行列式等。常用的函數有:
5.1 np.dot():計算兩個數組的點積。
import numpy as np arr1 = np.array([[1, 2], [3, 4]]) arr2 = np.array([[5, 6], [7, 8]]) dot_product = np.dot(arr1, arr2) print(dot_product) """ 輸出: [[19 22] [43 50]] """
登錄后復制
5.2 np.linalg.inv():計算矩陣的逆。
import numpy as np arr = np.array([[1, 2], [3, 4]]) inverse = np.linalg.inv(arr) print(inverse) """ 輸出: [[-2. 1. ] [ 1.5 -0.5]] """
登錄后復制
以上僅僅是NumPy庫中函數的一部分,通過了解這些常用函數的使用方法,我們能更高效地使用NumPy進行數組操作、數學運算、統計分析和線性代數等計算任務。同時,通過深入學習NumPy庫的相關文檔,我們可以發現更多強大的函數和功能,為我們的科學計算工作提供有力的支持。