NumPy(Numerical Python)是Python中用于科學計算的核心庫之一。它提供了一個高性能的多維數組對象(ndarray
),以及用于操作這些數組的工具。NumPy是許多其他科學計算庫(如SciPy、Pandas、Matplotlib等)的基礎,因此在數據科學、機器學習、圖像處理等領域中廣泛應用。
NumPy的主要特點包括:
在使用NumPy之前,需要先安裝它??梢酝ㄟ^以下命令使用pip
安裝NumPy:
pip install numpy
安裝完成后,可以通過以下代碼導入NumPy模塊:
import numpy as np
NumPy的核心是ndarray
對象,即N維數組??梢酝ㄟ^多種方式創建NumPy數組。
import numpy as np
# 從列表創建一維數組
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
# 從嵌套列表創建二維數組
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
NumPy提供了許多內置函數來創建特定類型的數組。
# 創建全零數組
zeros_arr = np.zeros((3, 3))
print(zeros_arr)
# 創建全一數組
ones_arr = np.ones((2, 4))
print(ones_arr)
# 創建單位矩陣
eye_arr = np.eye(3)
print(eye_arr)
# 創建等差數列數組
range_arr = np.arange(0, 10, 2)
print(range_arr)
# 創建等間隔數組
linspace_arr = np.linspace(0, 1, 5)
print(linspace_arr)
可以通過shape
屬性查看數組的形狀,通過ndim
屬性查看數組的維度。
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape) # 輸出 (2, 3)
print(arr.ndim) # 輸出 2
NumPy數組的索引和切片操作與Python列表類似。
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 獲取單個元素
print(arr[0, 1]) # 輸出 2
# 切片操作
print(arr[1:3, 0:2]) # 輸出 [[4, 5], [7, 8]]
NumPy支持對數組進行逐元素運算。
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 逐元素相加
print(a + b) # 輸出 [5, 7, 9]
# 逐元素相乘
print(a * b) # 輸出 [4, 10, 18]
# 矩陣乘法
print(np.dot(a, b)) # 輸出 32
廣播是NumPy中一種強大的機制,它允許不同形狀的數組進行數學運算。廣播的規則是:如果兩個數組的維度不同,NumPy會自動擴展較小的數組,使其形狀與較大的數組匹配。
a = np.array([[1, 2, 3], [4, 5, 6]])
b = np.array([10, 20, 30])
# 廣播機制使得b被擴展為[[10, 20, 30], [10, 20, 30]]
print(a + b) # 輸出 [[11, 22, 33], [14, 25, 36]]
NumPy提供了大量的數學函數,可以方便地進行各種數學運算。
arr = np.array([1, 2, 3, 4, 5])
# 求和
print(np.sum(arr)) # 輸出 15
# 求平均值
print(np.mean(arr)) # 輸出 3.0
# 求標準差
print(np.std(arr)) # 輸出 1.4142135623730951
# 求最大值和最小值
print(np.max(arr)) # 輸出 5
print(np.min(arr)) # 輸出 1
NumPy提供了豐富的線性代數函數,可以用于矩陣運算、求解線性方程組等。
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
# 矩陣乘法
print(np.dot(a, b)) # 輸出 [[19, 22], [43, 50]]
# 求矩陣的逆
print(np.linalg.inv(a)) # 輸出 [[-2. , 1. ], [ 1.5, -0.5]]
# 求特征值和特征向量
eigenvalues, eigenvectors = np.linalg.eig(a)
print(eigenvalues) # 輸出 [-0.37228132, 5.37228132]
print(eigenvectors) # 輸出 [[-0.82456484, -0.41597356], [ 0.56576746, -0.90937671]]
NumPy是Python中用于科學計算的核心庫之一,提供了高效的多維數組操作和豐富的數學函數。通過NumPy,可以輕松地進行數組的創建、索引、切片、運算等操作,并且可以利用廣播機制對不同形狀的數組進行數學運算。此外,NumPy還提供了線性代數、傅里葉變換、隨機數生成等高級功能,是數據科學和機器學習領域不可或缺的工具。
掌握NumPy的基本用法,可以幫助你更高效地處理和分析數據,為進一步學習其他科學計算庫打下堅實的基礎。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。