【NumPy】NumPy實戰入門:線性代數(dot、linalg)與隨機數(numpy.random)詳解

🧑 博主簡介:阿里巴巴嵌入式技術專家,深耕嵌入式+人工智能領域,具備多年的嵌入式硬件產品研發管理經驗。

📒 博客介紹:分享嵌入式開發領域的相關知識、經驗、思考和感悟,歡迎關注。提供嵌入式方向的學習指導、簡歷面試輔導、技術架構設計優化、開發外包等服務,有需要可加文末聯系方式聯系。

💬 博主粉絲群介紹:① 群內高中生、本科生、研究生、博士生遍布,可互相學習,交流困惑。② 熱榜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編程之旅更加豐富多彩。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14963.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14963.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14963.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Modular RPG Hero PBR

-掩碼著色著色器提供了無限的顏色變化。(適用于標準/HDRP/URP 11.0.0) -為劍與盾/雙劍/雙劍姿態提供了簡單的角色控制器。(不包括弓和魔杖控制器)(它是用舊的輸入系統建造的) -HDRP/URP(11.0.0)SRP 100%支持常規著色器和遮罩著色著色器(基于著色器圖形) -具有許多模塊…

rtk技術的使用, test ok

1. 什么是gnss 2 rtk定位

邏輯回歸模型的背景與應用

1.1邏輯回歸模型的背景與應用 邏輯回歸模型,作為一種經典的機器學習方法,起源于統計學領域。在眾多實際應用場景中,邏輯回歸模型都發揮著重要作用,尤其在分類問題中。當我們需要對具有離散特征的數據進行建模和預測時&#xff0c…

五分鐘部署開源運維平臺Spug結合內網穿透實現遠程登錄管理

文章目錄 前言1. Docker安裝Spug2 . 本地訪問測試3. Linux 安裝cpolar4. 配置Spug公網訪問地址5. 公網遠程訪問Spug管理界面6. 固定Spug公網地址 前言 Spug 面向中小型企業設計的輕量級無 Agent 的自動化運維平臺,整合了主機管理、主機批量執行、主機在線終端、文件…

移除元素-力扣

第一種解法&#xff0c;暴力解法&#xff0c;使用兩個for循環一個進行遍歷&#xff0c;一個進行覆蓋&#xff0c;代碼如下&#xff1a; class Solution { public:int removeElement(vector<int>& nums, int val) {int size nums.size();for(int i 0; i < size; …

C語言中的 ?: :三元運算符詳解

C語言中的 ?: &#xff1a;三元運算符詳解 在C語言的浩瀚代碼海洋中&#xff0c;三元運算符&#xff08;?:&#xff09;如同一位優雅的舞者&#xff0c;以簡潔的姿態完成條件判斷與賦值的雙重任務。它以問號&#xff08;?&#xff09;和冒號&#xff08;:&#xff09;這兩個…

Linux完整版命令大全(九)

4. linux壓縮備份命令 ar 功能說明&#xff1a;建立或修改備存文件&#xff0c;或是從備存文件中抽取文件。語  法&#xff1a;ar[-dmpqrtx][cfosSuvV][a<成員文件>][b<成員文件>][i<成員文件>][備存文件][成員文件]補充說明&#xff1a;ar可讓您集合許多…

Spring boot 注入成員變量HttpServletRequest的原理

前言 最近做項目&#xff0c;springboot項目&#xff0c;本來我們在controller的requestmapping取參數值或者返回寫時&#xff0c;使用方法參數&#xff0c;但是發現老項目直接注入了成員變量&#xff0c;Spring本身是單例的&#xff0c;如果是成員變量注入&#xff0c;那么也…

【C語言】指針(三)

目錄 一、字符指針 1.1 ? 使用場景 1.2 ? 有關字符串筆試題 二、數組指針 2.1 ? 數組指針變量 2.2 ? 數組指針類型 2.3 ? 數組指針的初始化 三、數組指針的使用 3.1 ? 二維數組和數組名的理解 3.2 ? 二維數組傳參 四、函數指針 4.1 ? 函數的地址 4.2 ? 函數…

JAVA面試題大全(十一)

1、為什么要使用 hibernate&#xff1f; 對JDBC訪問數據庫的代碼做了封裝&#xff0c;大大簡化了數據訪問層繁瑣的重復性代碼基于jdbc的主流持久化框架&#xff0c;是一個優秀的ORM實現&#xff0c;很大程度的簡化了dao層的編碼工作使用java的反射機制性能好&#xff0c;是一個…

【STL】C++ list 基本使用

目錄 一 list 常見構造 1 空容器構造函數&#xff08;默認構造函數&#xff09; 2 Fill 構造函數 3 Range 構造函數 4 拷貝構造函數 二 list迭代器 1 begin && end 2 rbegin && rend 三 list 容量操作 四 list 修改操作 1 assign 2 push_front &a…

【深度學習中的數據預處理技巧:提升模型性能的關鍵步驟】

文章目錄 前言數據標準化&#xff08;Normalization&#xff09;數據增強&#xff08;Data Augmentation&#xff09;缺失值處理&#xff08;Handling Missing Values&#xff09;特征編碼&#xff08;Feature Encoding&#xff09;結論 前言 在深度學習領域&#xff0c;數據預…

牛客NC362 字典序排列【中等 DFS Java/Go/PHP】

題目 題目鏈接&#xff1a; https://www.nowcoder.com/practice/de49cf70277048518314fbdcaba9b42c 解題方法 DFS&#xff0c;剪枝Java代碼 import java.util.*;public class Solution {/*** 代碼中的類名、方法名、參數名已經指定&#xff0c;請勿修改&#xff0c;直接返回…

【小筆記】如何在docker中更新或導入neo4j數據?

如何在docker中更新或導入neo4j數據&#xff1f; &#xff08;1&#xff09;背景&#xff1a; 我嘗試了4.4.9和5.19.0版本的Neo4j社區版&#xff0c;基于他們的鏡像創建容器后&#xff0c;需要導入我準備好的csv文件或dump文件&#xff0c;因為數據量非常大&#xff0c;所以采…

2024電工杯數學建模B題Python代碼+結果表數據教學

2024電工杯B題保姆級分析完整思路代碼數據教學 B題題目&#xff1a;大學生平衡膳食食譜的優化設計及評價 以下僅展示部分&#xff0c;完整版看文末的文章 import pandas as pd df1 pd.read_excel(附件1&#xff1a;1名男大學生的一日食譜.xlsx) df1# 獲取所有工作表名稱 e…

HarmonyOS-MPChart繪制一條虛實相接的曲線

本文是基于鴻蒙三方庫mpchart&#xff08;OpenHarmony-SIG/ohos-MPChart&#xff09;的使用&#xff0c;自定義繪制方法&#xff0c;繪制一條虛實相接的曲線。 mpchart本身的繪制功能是不支持虛實相接的曲線的&#xff0c;要么完全是實線&#xff0c;要么完全是虛線。那么當我…

面試總結之:socket線路切換

"socket線路切換"通常指的是在網絡通信過程中,根據當前網絡狀態或策略來動態更換數據傳輸路徑的技術。這種技術可以提高通信的可靠性和性能。 在實際應用中,線路切換可能涉及到多種技術,例如: 負載均衡:根據每條路徑的當前負載情況,動態地選擇一條較為空閑的路…

MySql超大Sql文件導入效率優化 —— 筑夢之路

使用場景 日常我們對mysql數據庫、mariadb數據庫進行定時備份&#xff0c;而隨著時間增長&#xff0c;導出來的備份文件越來越大&#xff0c;使用備份sql文件進行還原的時候&#xff0c;大文件非常慢&#xff0c;有些要執行很長時間&#xff0c;效率很低。 如何優化&#xff…

根據多個坐標經緯度獲取到中心點的經緯度,scala語言

文章目錄 前言scala 代碼 總結 前言 Scala 語言 通過多個經緯度坐標點, 計算出中心點, 這里使用的是 Scala 語言,其他的語言需要自行轉換。求出來的并不是原有的點&#xff0c;而是原有點的中心位置的點。 scala 代碼 package com.dw.process.midimport java.lang.Double.pa…

C語言 | Leetcode C語言題解之第97題交錯字符串

題目&#xff1a; 題解&#xff1a; bool isInterleave(char* s1, char* s2, char* s3) {int n strlen(s1), m strlen(s2), t strlen(s3);int f[m 1];memset(f, 0, sizeof(f));if (n m ! t) {return false;}f[0] true;for (int i 0; i < n; i) {for (int j 0; j &l…