python自學筆記14 NumPy 線性代數

在Numpy庫中有專門的linalg 模塊用來做線性代數相關的運算。
本文中線性代數的一般概念不會解釋

拆解矩陣

鳶尾花數據矩陣結構如下(150 × 4):
在這里插入圖片描述
取其中的行向量和列向量:

# 導入包
import numpy as np
from sklearn.datasets import load_iris
# 從sklearn導入鳶尾花數據
iris = load_iris()
X = iris.data
# 提取四個行向量 (二維數組)
x_row_1 = X[[1 - 1], :]
x_row_2 = X[[2 - 1], :]
x_row_51 = X[[51 - 1], :]
x_row_101 = X[[101 - 1], :]# 提取四個列向量 (二維數組)
x_col_1 = X[:, [0]]
x_col_2 = X[:, [1]]
x_col_3 = X[:, [2]]
x_col_4 = X[:, [3]]

向量運算

向量的模

norm_x_row_1 = np.linalg.norm(x_row_1)
norm_x_row_2 = np.linalg.norm(x_row_2)
norm_x_row_51 = np.linalg.norm(x_row_51)
norm_x_row_101 = np.linalg.norm(x_row_101)

向量單位化

unit_x_row_1 = x_row_1 / norm_x_row_1
unit_x_row_2 = x_row_2 / norm_x_row_2
unit_x_row_51 = x_row_51 / norm_x_row_51
unit_x_row_101 = x_row_101 / norm_x_row_101

向量內積

inner_prod_x_row_1_2 = np.dot(x_row_1[0], x_row_2[0])
inner_prod_x_row_1_51 = np.dot(x_row_1[0], x_row_51[0])
inner_prod_x_row_1_101 = np.dot(x_row_1[0], x_row_101[0])

向量夾角

下面的代碼先求內積是因為單位向量的內積就是余弦值

# 計算單位向量內積
dot_product_1_51 = np.dot(unit_x_row_1[0],unit_x_row_51[0])
# 將結果轉化為弧度
angle_1_51 = np.arccos(dot_product_1_51)
# 將結果轉化為角度
angle_1_51 = np.rad2deg(angle_1_51)

這里補充一個數學上的概念:
在這里插入圖片描述

矩陣運算

矩陣乘法

# 第一個格拉姆矩陣
G = X.T @ X
# 第二個格拉姆矩陣
H = X @ X.T

矩陣的逆

# 計算格拉姆矩陣G的逆矩陣
a G_inv = np.linalg.inv(G)

幾個常見矩陣分解

Cholesky 分解

# 對格拉姆矩陣G進行Cholesky分解
a L = np.linalg.cholesky(G)

G是正定陣

特征值分解 EVD

# 對格拉姆矩陣G進行特征值分解
Lambdas, V = np.linalg.eig(G)

Lambdas的對角線是特征值,V的每一列是特征向量

奇異值分解 SVD

# 鳶尾花數據矩陣X奇異值分解
U,S,VT = np.linalg.svd(X, full_matrices = False)

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

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

相關文章

ubuntu20搭建MQTT

sudo apt update sudo apt install mosquitto mosquitto-clients sudo mosquitto_passwd -c /etc/mosquitto/passwd myuser sudo nano /etc/mosquitto/mosquitto.conf# 允許匿名用戶連接(默認為 true,我們先關閉它) allow_anonymous false# 指…

云服務器的主要用途都有哪些?

企業可以利用云服務器構建官方網站,企業官網需要穩定的運行環境來展示產品、服務、公司動態等信息,云服務器提供的高可用性和可擴展性,能保障大量用戶同時訪問時網站的穩定運行。移動應用的后端服務可以部署在云服務器上,如社交類…

IntelliJ IDEA Debug 模式功能指南

文章目錄前言💡 1. 斷點類型與設置🚀 2. 啟動 Debug 模式?? 3. 調試控制按鈕詳解👀 4. 查看與監控變量🧰 5. 高級調試技巧💎 總結前言 作為一名 Java 開發者,熟練掌握調試技巧是提高開發效率的關鍵。Int…

在pycharmIDE中如何快速掌握一個新模塊的使用方法

一、文檔使用懸停文檔:鼠標懸停在模塊/函數上顯示文檔摘要 (?最常用)快速文檔:選中標識符按 CtrlQ (Windows/Linux) 或 F1 (Mac)跳轉定義:Ctrl左鍵單擊 直接跳轉到源碼定義處 (?最權威)參數提示:輸入函數名時自動顯示參數列表&a…

win11自定義停止更新方法

一、打開運行窗口(winr)輸入regedit打開注冊表編輯器。按照如下路徑尋找。計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings二、在Settings頁面下右擊——>新建——>DWORD(32位)值(D),并重命名為粉色框中的名字…

Unity委托、匿名方法與事件深度解析:從理論到實戰

Unity委托、匿名方法與事件深度解析:從理論到實戰 摘要:本文深入剖析Unity中委托、匿名方法與事件的核心機制,結合理論框架與實戰案例,幫助開發者掌握高效的事件驅動編程技巧。全文包含12個代碼片段及6個核心原理圖示框架&#x…

大腦的藏寶圖——神經科學如何為自然語言處理(NLP)的深度語義理解繪制新航線

摘要: 截至2025年,大型語言模型(LLM)已展現出驚人的能力,但其內在的“黑箱”特性和對深層語義理解的局限性也日益凸顯。本報告旨在深入探討一個充滿潛力的前沿交叉領域:借鑒地球上最古老、最精密的語言處理…

記錄使用ruoyi-flowable開發部署中出現的問題以及解決方法(二)

1.vform的使用與傳值 使用動態表單,把當前的用戶名傳值進動態表單,另外動態表單的上傳組件成功后傳值會父組件。 在父組件的加載函數中增加: mounted(){this.$refs.vFormRef.addEC("getuploadfile",this);},該方法為給表單加載外…

Apifox 8 月更新|新增測試用例、支持自定義請求示例代碼、提升導入/導出 OpenAPI/Swagger 數據的兼容性

Apifox 作為全能 API 工具,正以迅猛之勢革新開發者的工作方式!想象一下,您正為測試用例編寫頭疼,或因 OpenAPI 文件導入失敗而延誤項目,而 Apifox 8 月更新卻帶來“救命稻草”:新增測試用例功能、自定義請求…

多機多卡微調流程

多機多卡(Distributed Training)微調大模型是一項復雜但非常高效的任務。它允許你利用多臺機器的計算資源來訓練一個模型,從而顯著縮短訓練時間。 多機多卡微調核心流程 整個流程可以概括為以下幾個核心步驟: 環境準備與硬件配置 …

Redis(23) RDB和AOF有什么區別?

Redis 的 RDB(Redis Database)和 AOF(Append-Only File)是兩種主要的持久化機制。每種機制都有其獨特的工作方式、優缺點和適用場景。以下是兩者的詳細比較,并結合代碼示例進行解釋。 RDB(Redis Database&a…

在WSL2 Ubuntu中部署FastDFS服務的完整指南

在WSL2 Ubuntu中部署FastDFS服務的完整指南📖 前言🛠? 環境準備1. 系統要求2. Ubuntu應用🚀 安裝服務1. 更新系統2. 安裝編譯依賴3. 下載源碼4. 編譯安裝🔧 配置服務1. 設置配置文件2. 創建數據目錄3. 配置Tracker服務4. 配置Sto…

新手向:網絡編程完全指南

1. 引言:什么是網絡編程?網絡編程(Network Programming)是指利用計算機網絡實現程序間通信的技術。它構建在計算機網絡協議基礎上,通過編程實現不同設備間的數據交換與資源共享。從底層協議實現到高層應用開發&#xf…

阿里云——云存儲與數據庫服務

云存儲與數據庫服務 數據是數字時代的新石油,而存儲與數據庫服務就是保存和提煉這些石油的“油庫與煉油廠”。阿里云提供了從對象、塊、文件存儲到關系型、NoSQL、數據倉庫的全方位數據服務。本章將幫你構建一套清晰的數據存儲選型框架,并掌握核心服務的…

瀏覽器網頁路徑掃描器(腳本)

使用網頁路徑掃描器可以掃描網頁的路徑,一些工具如ffuf為在命令行上操作,比較不便,而其他資源不好找到 Website path scanner(Script-tampermonkey) 腳本發布在GitHub,本文章也關聯文件資源 GitHub:Website path scanner(Script-…

實戰原型模式案例

作者:小凱 分享、讓自己和他人都能有所收獲!😄 一、前言 老板你加錢我的代碼能飛 程序員這份工作里有兩種人;一類是熱愛喜歡的、一類是僅當成工作的。而喜歡代碼編程的這部分人會極其主動學習去豐富自己的羽翼,也非常喜…

微信小程序餐飲掃碼點餐小程序堂食外賣桌臺自助下單源碼

功能說明:商家助手APP、接單更方便前端頁面模版隨意挑選,可diy精裝設計線下買單餐桌點餐快速下單會員管理訂單管理優惠券核銷叫號取餐排隊叫號商品管理桌位管理數據統計售后訂單配送設置推廣碼硬件設備一、技術架構:PHPUniApp構建高性價比系統…

Linux應用軟件編程---網絡編程(TCP并發服務器構建:[ 多進程、多線程、select ])

TCP并發服務器構建一、服務器單循環服務器:服務端同一時刻只能處理一個客戶端的任務(TCP)并發服務器:服務端同一時刻可以處理多個客戶端的任務(UDP)二、TCP服務端并發模型1、多進程進程資源開銷大&#xff…

重構審計體驗!批量生成報表項目底稿的憑證檢查表

在審計工作中,我們通過序時賬或其他審計軟件篩選導出的憑證列表,要如何快速分發給各個報表項目底稿的憑證檢查表呢? “TB工具箱2025”正式上線“批量生成憑證表”的功能,通過一些巧妙的設計,使其具備高度的通用性&…

【c++進階系列】:萬字詳解二叉搜索樹(附源碼實現)

🔥 本文專欄:c 🌸作者主頁:努力努力再努力wz 💪 今日博客勵志語錄: 你可以走得慢,但別回頭 1.概念 二叉搜索樹,從其名字我們就能知道該數據結構是一個特殊的二叉樹,而二…