🧑 博主簡介:阿里巴巴嵌入式技術專家,深耕嵌入式+人工智能領域,具備多年的嵌入式硬件產品研發管理經驗。
📒 博客介紹:分享嵌入式開發領域的相關知識、經驗、思考和感悟,歡迎關注。提供嵌入式方向的學習指導、簡歷面試輔導、技術架構設計優化、開發外包等服務,有需要可加文末聯系方式聯系。
💬 博主粉絲群介紹:① 群內高中生、本科生、研究生、博士生遍布,可互相學習,交流困惑。② 熱榜top10的常客也在群里,也有數不清的萬粉大佬,可以交流寫作技巧,上榜經驗,漲粉秘籍。③ 群內也有職場精英,大廠大佬,可交流技術、面試、找工作的經驗。④ 進群免費贈送寫作秘籍一份,助你由寫作小白晉升為創作大佬。⑤ 進群贈送CSDN評論防封腳本,送真活躍粉絲,助你提升文章熱度。有興趣的加文末聯系方式,備注自己的CSDN昵稱,拉你進群,互相學習共同進步。
NumPy實戰入門:線性代數(dot、linalg)與隨機數(numpy.random)詳解
- 1. 前言
- 2. NumPy庫簡介
- 3. 線性代數模塊
- 3.1 numpy.dot — 矩陣乘法
- 3.2 numpy.linalg — 矩陣分解
- 4. 隨機數模塊
- 4.1 numpy.random.uniform—均勻分布
- 4.2 numpy.random.normal—正態分布
- 4.3 numpy.random.choice—隨機抽樣
- 4.4 numpy.random.shuffle—洗牌
- 5. 總結
1. 前言
NumPy,全稱為Numerical Python,是Python語言中最核心的科學計算包,它為大型多維數組和矩陣提供了高效的數據結構,以及大量的數學函數來操作這些數組。本文將深入探討NumPy中的線性代數模塊和隨機數生成模塊,通過示例代碼展示其強大功能,并在最后進行總結。
2. NumPy庫簡介
NumPy的核心是其N維數組對象ndarray,它允許對元素進行矢量化運算,大大提高了計算效率。此外,NumPy還提供了廣泛的數學函數,這些函數可以直接應用于數組上的每個元素,無需循環。這使得NumPy成為數據分析、機器學習、圖像處理等領域不可或缺的工具。
3. 線性代數模塊
3.1 numpy.dot — 矩陣乘法
numpy.dot
函數用于計算兩個數組的點積或矩陣乘法。當輸入是一維數組時,它計算的是內積;對于二維數組(矩陣),則是標準的矩陣乘法。
示例代碼:
import numpy as np# 定義兩個矩陣
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])# 計算矩陣乘積
C = np.dot(A, B)
print("矩陣乘積 C:\n", C)
3.2 numpy.linalg — 矩陣分解
numpy.linalg
子模塊提供了各種矩陣分解方法,如求逆、特征值、奇異值分解等。
示例代碼:
import numpy as np# 定義一個矩陣
A = np.array([[1, 2], [3, 4]])# 計算矩陣的逆
A_inv = np.linalg.inv(A)
print("矩陣 A 的逆:\n", A_inv)# 計算矩陣的特征值
eigenvalues, eigenvectors = np.linalg.eig(A)
print("矩陣 A 的特征值:\n", eigenvalues)
4. 隨機數模塊
numpy.random
模塊提供了豐富的隨機數生成功能,支持多種概率分布。
4.1 numpy.random.uniform—均勻分布
使用numpy.random.uniform
可以生成指定范圍內的均勻分布隨機數。
示例代碼:
import numpy as np# 生成10個[0, 1)區間內的均勻分布隨機數
uniform_numbers = np.random.uniform(size=10)
print("均勻分布隨機數:\n", uniform_numbers)
4.2 numpy.random.normal—正態分布
numpy.random.normal
用于生成正態分布(高斯分布)的隨機數。
示例代碼:
import numpy as np# 生成10個均值為0,標準差為1的正態分布隨機數
normal_numbers = np.random.normal(loc=0, scale=1, size=10)
print("正態分布隨機數:\n", normal_numbers)
4.3 numpy.random.choice—隨機抽樣
numpy.random.choice
用于從給定的一維數組中隨機抽取樣本。
示例代碼:
import numpy as np# 從數組[0, 1, ..., 9]中無放回抽取3個樣本
samples = np.random.choice(10, size=3, replace=False)
print("隨機抽樣結果:\n", samples)
4.4 numpy.random.shuffle—洗牌
numpy.random.shuffle
用于打亂數組順序。
示例代碼:
import numpy as np# 創建一個數組并進行洗牌
array = np.arange(10)
np.random.shuffle(array)
print("洗牌后的數組:\n", array)
5. 總結
NumPy的線性代數和隨機數生成功能極大地擴展了Python在科學計算和數據處理方面的應用范圍。通過高效的矩陣運算和靈活的隨機數生成器,開發者能夠輕松實現復雜的數據分析和模型構建。無論是進行大規模數據的統計分析,還是構建機器學習算法的基礎,NumPy都扮演著至關重要的角色。掌握這些核心功能,將使你的Python編程之旅更加豐富多彩。