人工智能中的線性代數總結--簡單篇

numpy庫中的dot函數來計算矩陣和向量的點積

def matrix_vector_dot_product(a, b):import numpy as npif (len(a[0]) != len(b)):return -1# 使用tolist()將結果轉換為列表return np.dot(a, b).tolist()

原始方法

def matrix_vector_dot_product(matrix, vector):if len(matrix[0]) != len(vector):return -1l = []for i in matrix:num = 0for j in range(len(i)):num += (i[j]*vector[j])l.append(num)return l# 主程序
if __name__ == "__main__":# 輸入矩陣和向量matrix_input = input()vector_input = input()# 處理輸入import astmatrix = ast.literal_eval(matrix_input)vector = ast.literal_eval(vector_input)# 調用函數計算點積output = matrix_vector_dot_product(matrix, vector)# 輸出結果print(output)

numpy庫中給定的矩陣 A,其轉置矩陣表示為 A^T

def transpose_matrix(a: List[List[Union[int, float]]]) -> List[List[Union[int, float]]]:import numpy as npreturn np.array(a).T.tolist()

使用numpy庫的reshape方法矩陣重塑

矩陣重塑是將一個矩陣轉換為另一個形狀的過程,前提是新形狀的元素總數與原矩陣相同

def reshape_matrix(a: List[List[Union[int, float]]], new_shape: Tuple[int, int]) -> List[List[Union[int, float]]]:import numpy as npif len(a) * len(a[0]) != new_shape[0] * new_shape[1]:return -1return np.array(a).reshape(new_shape).tolist()

使用numpy庫的mean方法按行或列計算平均值

def calculate_matrix_mean(matrix: List[List[Union[int, float]]], mode: str) -> List[float]:import numpy as npif mode == 'column':return np.mean(matrix, axis=0).tolist()elif mode == 'row':return np.mean(matrix, axis=1).tolist()else:raise ValueError("Mode must be 'row' or 'column'")

使用python的廣播機制進行標量的矩陣乘法

def scalar_multiply(matrix: List[List[Union[int, float]]], scalar: Union[int, float]) -> List[List[Union[int, float]]]:import numpy as npreturn (np.array(matrix) * scalar).tolist()

使用numpy庫的cov方法計算協方差矩陣

協方差矩陣是一種描述兩個隨機變量之間關系的矩陣,其計算公式為:

import numpy as npdef jia(vectors, a):return [i + a for i in vectors]def dianji(a,b):if len(a) != len(b):return -1s = 0for j in range(len(a)):s += a[j] * b[j]return sdef cov(x,y):return dianji(jia(x, -sum(x)/len(x)),jia(y, -sum(y)/len(y))) / (len(x)-1)def calculate_covariance_matrix(vectors):# 補全代碼return [[cov(x,y) for x in vectors] for y in vectors]# 主程序
if __name__ == "__main__":# 輸入ndarrayA = input()# 處理輸入import astA = ast.literal_eval(ndarrayA)# 調用函數計算output = calculate_covariance_matrix(A)# 輸出結果print(output)

原始方法

import numpy as npdef calculate_covariance_matrix(vectors):n_features = len(vectors)n_observations = len(vectors[0])covariance_matrix = np.zeros([n_features, n_features])means = [sum(feature) / n_observations for feature in vectors]for i in range(n_features):for j in range(i, n_features):covariance = sum((vectors[i][k] - means[i]) * (vectors[j][k] - means[j])for k in range(n_observations)) / (n_observations - 1)covariance_matrix[i][j] = covariance_matrix[j][i] = covariancereturn covariance_matrix.tolist()
# 主程序
if __name__ == "__main__":# 輸入ndarrayA = input()# 處理輸入import astA = ast.literal_eval(ndarrayA)# 調用函數計算output = calculate_covariance_matrix(A)# 輸出結果print(output)

基向量變換矩陣

基向量變換矩陣(Basis Vector Transformation?Matrix)是一種常用的矩陣,用于將基向量變換為另一個基向量。

import numpy as npdef transform_basis(B, C):B = np.array(B)C = np.array(C)C = np.linalg.inv(C)P = B@Creturn P.tolist()if __name__ == "__main__":B = np.array(eval(input()))C = np.array(eval(input()))print(transform_basis(B, C))

?將向量轉換為對角矩陣

def make_diagonal(x):identity_matrix = np.identity(np.size(x))return (identity_matrix*x)

原始方法

def make_diagonal(x):x = np.array(x)zeros = np.zeros((len(x),len(x)),dtype=np.float16)for i in range(len(x)):zeros[i,i]=x[i]return zerosif __name__ == "__main__":x = np.array(eval(input()))print(make_diagonal(x))

實現壓縮行稀疏矩陣(CSR)格式轉換

壓縮行稀疏矩陣(CSR)格式是一種特殊的矩陣存儲格式,其特點是只存儲非零元素的值、行號和列指針。本質上是一種三元組表示法。

輸入

[[1, 0, 0], [2, 3, 0], [0, 4, 5]]

輸出

[1, 2, 3, 4, 5]
[0, 0, 1, 1, 2]
[0, 1, 3, 5]

def compressed_row_sparse_matrix(dense_matrix):vals = []col_idx = []row_ptr=[0]for x in dense_matrix:for i,y in enumerate(x):if y!=0:vals.append(y)col_idx.append(i)row_ptr.append(len(vals))return vals, col_idx, row_ptrif __name__ == "__main__":dense_matrix = eval(input())vals, col_idx, row_ptr = compressed_row_sparse_matrix(dense_matrix)print(vals)print(col_idx)print(row_ptr)

實現向量到直線的正交投影

def orthogonal_projection(v, L):import numpy as npv = np.array(v)L = np.array(L)a = (((v@L)/np.dot(L,L))*L)a = a.tolist()return aif __name__ == "__main__":v = eval(input())L = eval(input())print(orthogonal_projection(v, L))

實現壓縮列稀疏矩陣

def compressed_col_sparse_matrix(dense_matrix):from scipy.sparse import csc_matrixsparse = csc_matrix(dense_matrix)return sparse.data.tolist(), sparse.indices.tolist(), sparse.indptr.tolist()

原始方法

def compressed_col_sparse_matrix(dense_matrix):vals, row_idx, col_ptr = [],[],[0]import numpy as npdense_matrix = np.array(dense_matrix)dense_matrix = dense_matrix.Tfor i in dense_matrix:for j,x in enumerate(i):if x!=0:vals.append(x)row_idx.append(j)col_ptr.append(len(vals))return vals, row_idx, col_ptrif __name__ == "__main__":dense_matrix = eval(input())vals, row_idx, col_ptr = compressed_col_sparse_matrix(dense_matrix)print(vals)print(row_idx)print(col_ptr)

計算向量之間的余弦相似度

import numpy as npdef cosine_similarity(v1, v2):# Implement your code hereif v1.shape != v2.shape:raise ValueError("Arrays must have the same shape")if v1.size == 0:raise ValueError("Arrays cannot be empty")v1 = v1.flatten()v2 = v2.flatten()val= (v1@v2)/(np.sqrt(np.dot(v1,v1))*np.sqrt(np.dot(v2,v2)))return round(val, 3)if __name__ == "__main__":v1 = np.array(eval(input()))v2 = np.array(eval(input()))print(cosine_similarity(v1, v2))

泊松分布概率計算器

泊松分布是一種描述隨機事件發生次數的概率分布,其計算公式為:

import mathdef poisson_probability(k, lam):# Your code hereo=(math.exp(-lam))*(lam**k)u=math.factorial(k)val=o/ureturn round(val, 5)if __name__ == "__main__":k, lam = map(int, input().split())print(poisson_probability(k, lam))

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

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

相關文章

又是全網首創/純Qt實現28181設備模擬器/rtp視頻點播/桌面轉28181/任意文件轉28181/跨平臺

一、前言說明 這個工具前前后后也算是廢了不少功夫,最開始是因為28181服務端的組件已經完美實現,對照國標文檔看了很多遍,逐個實現需要的交互協議,整體上比onvif協議要難不少,主要是涉及到的東西比較多,有…

安卓逆向(一)Ubuntu環境配置

一、Ubuntu 1、虛擬機 首先準備一個Ubuntu的虛擬機,就隨便新建一個就行,我這里使用的是Ubuntu21.04,但是內存跟硬盤大小最好設置的稍微大一點。 2、基礎環境 (1)解決apt-get update報錯問題 apt-get是Linux系統中一個管…

Go 1.25在性能方面做了哪些提升?

Go 1.25 在性能方面帶來了多項重要提升,主要有以下幾個方面: 實驗性垃圾回收器 GreenTea GC:針對小對象密集型應用優化,顯著提升小對象標記和掃描性能,垃圾回收開銷減少0-40%,暫停時間縮短,吞吐…

Python與XML文件處理詳解(2續):xml.dom.minidom模塊高階使用方法

目錄 第一部分:高級節點操作與遍歷方法 1.1 更精確的節點導航 1.2 使用 cloneNode() 復制節點 1.3 節點插入、替換與高級管理 第二部分:文檔創建與高級輸出控制 2.1 使用 Document 工廠方法完整創建文檔 2.2 高級輸出與序列化控制 第三部分:實用工具函數與模式處理 …

如何利用 ChatGPT 輔助寫作

引言 介紹人工智能輔助寫作的興起,ChatGPT 在寫作領域的應用潛力,以及本文的核心目標。 ChatGPT 在寫作中的核心功能 概述 ChatGPT 的主要功能,包括文本生成、潤色、結構優化、靈感激發等。 利用 ChatGPT 輔助寫作的具體方法 生成創意與靈感 …

【有鹿機器人自述】我在社區的365天:掃地、賣萌、治愈人心

大家好,我是有鹿巡掃機器人,編號RD-07。今天我想和大家分享這一年來的工作見聞——沒錯,我們機器人也會"觀察"和"感受",尤其是在連合直租將我送到這個社區后,發生的點點滴滴讓我擁有了前所未有的&…

第五十五天(SQL注入增刪改查HTTP頭UAXFFRefererCookie無回顯報錯復盤)

#數據庫知識: 1、數據庫名,表名,列名,數據 2、自帶數據庫,數據庫用戶及權限 3、數據庫敏感函數,默認端口及應用 4、數據庫查詢方法(增加刪除修改更新) #SQL注入產生原理&#xf…

怎么用 tauri 創建一個桌面應用程序(Electron)

以前用 Electron 做過一個桌面應用程序,打包體積確實很大,啟動也很慢。這次先 tauri。 并且用 bun 代替 npm 速度更快,避免總是出現依賴問題。 前端用 react 為了學習下,用 js 先現在主流的 typescript。 安裝 bun npm instal…

【通過Docker快速部署Tomcat9.0】

文章目錄前言一、部署docker二、部署Tomcat2.1 創建存儲卷2.2 運行tomcat容器2.3 查看tomcat容器2.4 查看端口是否監聽2.5 防火墻開放端口三、訪問Tomcat前言 Tomcat介紹 Tomcat 是由 Apache 軟件基金會(Apache Software Foundation)開發的一個開源 Jav…

LabVIEW UI 分辨率適配

針對 LabVIEW UI 在不同分辨率下的適配,現有方案分三類:一是現有 VI 可通過 “VI 屬性 - 窗口大小” 勾選比例保持或控件縮放選項快速調整,也可取消勾選或換等寬字體防控件移位;二是項目初期以最低目標分辨率為基準,用…

國產化FPGA開發板:2050-基于JFMK50T4(XC7A50T)的核心板

(IEB-PS-3051-郵票孔) 一、核心板概述 板卡基于JFMK50T4國產化FPGA芯片,設計的一款工業級核心板,板卡集成主芯片、電源、DDR、配置芯片,大大減輕客戶的擴展開發困難。豐富的IO和4個GTP,讓用戶輕…

Webpack 核心原理剖析

時至今日,Webpack 已迭代到 5.x 版本,其功能模塊的擴充和復雜度的提升使得源碼學習成本陡增。官方文檔的晦澀表述更是讓許多開發者望而卻步。然而,理解 Webpack 的核心原理對優化構建流程、定制化打包方案至關重要。本文將通過簡化流程和代碼…

移植Qt4.8.7到ARM40-A5

移植Qt4.8.7到ARM40-A5 主機平臺:Ubuntu 16.04 LTS(x64) 目標平臺:ARM40-A5 Qt版本:Qt4.8.7 ARM GCC編譯工具鏈: arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 ----------## Qt移植步驟 ## 1、了解Ubuntu&am…

C++_哈希

1. unordered系列關聯式容器在C98中,STL提供了底層為紅黑樹結構的一系列關聯式容器,在查詢時效率可達到$log_2 N$,即最差情況下需要比較紅黑樹的高度次,當樹中的節點非常多時,查詢效率也不理想。最好 的查詢是&#xf…

Redis 內存管理機制:深度解析與性能優化實踐

🧠 Redis 內存管理機制:深度解析與性能優化實踐 文章目錄🧠 Redis 內存管理機制:深度解析與性能優化實踐🧠 一、Redis 內存架構全景💡 Redis 內存組成結構📊 內存占用分布示例?? 二、內存分配…

cargs: 一個輕量級跨平臺命令行參數解析庫

目錄 1.簡介 2.安裝與集成 3.項目的目錄結構及介紹 4.核心數據結構與函數 5.基本使用示例 6.應用案例和最佳實踐 7.高級用法 8.與其他庫的對比 9.總結 1.簡介 cargs 是一個輕量級、無依賴的 C 語言命令行參數解析庫,雖然本身是 C 庫,但可以無縫…

【數學建模】質量消光系數在煙幕遮蔽效能建模中的核心作用

前言:歡迎各位光臨本博客,這里小編帶你直接手撕質量相關系數,文章并不復雜,愿諸君耐其心性,忘卻雜塵,道有所長!!!! **🔥個人主頁:IF’…

Java代碼審計實戰:XML外部實體注入(XXE)深度解析

Java代碼審計實戰:XML外部實體注入(XXE)深度解析XML外部實體注入(XXE)是Web應用程序中一種常見但又常常被忽視的漏洞。它利用了XML解析器解析XML文檔時,允許引用外部實體這個特性。如果解析器沒有禁用外部實…

當服務器出現網卡故障時如何檢測網卡硬件故障并解決?

當服務器出現網卡故障時,可能導致網絡通信中斷,從而影響業務的正常運行。以下是檢測網卡硬件故障、診斷問題并解決的詳細方法和步驟。1. 網卡故障的常見表現1.1 硬件故障的常見癥狀網絡無法連接:服務器無法訪問外部網絡或用戶無法連接到服務器…

從車輛中心到用戶中心:E/E架構的變革與挑戰

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…