網(wǎng)站首頁 編程語言 正文
創(chuàng)建NumPy矩陣
NumPy對于多維數(shù)組的運(yùn)算,默認(rèn)情況下并不進(jìn)行矩陣運(yùn)算。如果需要對數(shù)組進(jìn)行矩陣運(yùn)算,則可以調(diào)用相應(yīng)的函數(shù)。
在NumPy中,矩陣是ndarray的子類。
在NumPy中,數(shù)組和矩陣有著重要的區(qū)別。NumPy提供了兩個(gè)基本的對象:一個(gè)N維數(shù)組對象和一個(gè)通用函數(shù)對象。其他對象都是在它們之上構(gòu)建的。
矩陣是繼承自NumPy數(shù)組對象的二維數(shù)組對象。與數(shù)學(xué)概念中的矩陣一樣,NumPy中的矩陣也是二維的。
1. 創(chuàng)建矩陣
可以使用mat、matrix以及bmat函數(shù)來創(chuàng)建矩陣。使用mat函數(shù)創(chuàng)建矩陣時(shí),若輸入matrix或ndarray對象,則不會為它們創(chuàng)建副本。因此,調(diào)用mat函數(shù)和調(diào)用matrix(data, copy=False)等價(jià)。
案例:創(chuàng)建矩陣
# 導(dǎo)入NumPy庫
import numpy as np
# 使用分號隔開數(shù)據(jù)
matr1 = np.mat("1 2 3;4 5 6;7 8 9")
print('創(chuàng)建的矩陣為:',matr1)
# 使用列表創(chuàng)建矩陣
matr2 = np.matrix([[1,2,3],[4,5,6],[7,8,9]])
print('創(chuàng)建的矩陣為:',matr2)
創(chuàng)建的矩陣為: [[1 2 3]
?[4 5 6]
?[7 8 9]]
創(chuàng)建的矩陣為: [[1 2 3]
?[4 5 6]
?[7 8 9]]
2. 創(chuàng)建分塊矩陣
很多時(shí)候會根據(jù)小的矩陣創(chuàng)建大的矩陣,即將小矩陣組合成大矩陣。在NumPy中,可以使用bmat分塊矩陣(block matrix)函數(shù)實(shí)現(xiàn)。
案例:創(chuàng)建分塊矩陣
arr1 = np.eye(3)
print('創(chuàng)建的數(shù)組1為:',arr1)
arr2 = 3*arr1
print('創(chuàng)建的數(shù)組2為:',arr2)
print('創(chuàng)建的矩陣為:',np.bmat("arr1 arr2; arr1 arr2"))
創(chuàng)建的數(shù)組1為: [[1. 0. 0.]
?[0. 1. 0.]
?[0. 0. 1.]]
創(chuàng)建的數(shù)組2為: [[3. 0. 0.]
?[0. 3. 0.]
?[0. 0. 3.]]
創(chuàng)建的矩陣為: [[1. 0. 0. 3. 0. 0.]
?[0. 1. 0. 0. 3. 0.]
?[0. 0. 1. 0. 0. 3.]
?[1. 0. 0. 3. 0. 0.]
?[0. 1. 0. 0. 3. 0.]
?[0. 0. 1. 0. 0. 3.]]
3. 矩陣計(jì)算
在NumPy中,矩陣計(jì)算是針對整個(gè)矩陣中的每個(gè)元素進(jìn)行的。與使用for循環(huán)相比,其在運(yùn)算速度上更快。
案例:矩陣計(jì)算
matr1 = np.mat("1 2 3;4 5 6;7 8 9") ?#創(chuàng)建矩陣
print('創(chuàng)建的矩陣為:',matr1)
matr2 = matr1*3 ?#矩陣與數(shù)相乘
print('創(chuàng)建的矩陣為:',matr2)
print('矩陣相加結(jié)果為:',matr1+matr2) ?#矩陣相加
print('矩陣相減結(jié)果為:',matr1-matr2) ?#矩陣相減
print('矩陣相乘結(jié)果為:',matr1*matr2) ?#矩陣相乘
print('矩陣對應(yīng)元素相乘結(jié)果為:',np.multiply(matr1,matr2))
創(chuàng)建的矩陣為: [[1 2 3]
?[4 5 6]
?[7 8 9]]
創(chuàng)建的矩陣為: [[ 3 ?6 ?9]
?[12 15 18]
?[21 24 27]]
矩陣相加結(jié)果為: [[ 4 ?8 12]
?[16 20 24]
?[28 32 36]]
矩陣相減結(jié)果為: [[ -2 ?-4 ?-6]
?[ -8 -10 -12]
?[-14 -16 -18]]
矩陣相乘結(jié)果為: [[ 90 108 126]
?[198 243 288]
?[306 378 450]]
矩陣對應(yīng)元素相乘結(jié)果為: [[ ?3 ?12 ?27]
?[ 48 ?75 108]
?[147 192 243]]
4. 矩陣屬性
除了能夠?qū)崿F(xiàn)各類運(yùn)算外,矩陣還有其特有的屬性。
屬性 | 說明 |
---|---|
T | 返回自身的轉(zhuǎn)置 |
H | 返回自身的共軛轉(zhuǎn)置 |
I | 返回自身的逆矩陣 |
A | 返回自身數(shù)據(jù)的2維數(shù)組的一個(gè)視圖 |
案例:矩陣的屬性
print('矩陣轉(zhuǎn)置結(jié)果為:',matr1.T) #轉(zhuǎn)置
print('矩陣共軛轉(zhuǎn)置結(jié)果為:',matr1.H) #共軛轉(zhuǎn)置(實(shí)數(shù)的共軛就是其本身)
print('矩陣的二維數(shù)組結(jié)果為:',matr1.A) #返回二維數(shù)組的視圖
print('矩陣的逆矩陣結(jié)果為:',matr1.I) #逆矩陣
矩陣轉(zhuǎn)置結(jié)果為: [[ 2 ?1 -1]
?[ 2 -1 ?2]
?[ 3 ?0 ?1]]
矩陣共軛轉(zhuǎn)置結(jié)果為: [[ 2 ?1 -1]
?[ 2 -1 ?2]
?[ 3 ?0 ?1]]
矩陣的二維數(shù)組結(jié)果為: [[ 2 ?2 ?3]
?[ 1 -1 ?0]
?[-1 ?2 ?1]]
矩陣的逆矩陣結(jié)果為: [[ 1. -4. -3.]
?[ 1. -5. -3.]
?[-1. ?6. ?4.]]
原文鏈接:https://blog.csdn.net/mighty13/article/details/119652459
相關(guān)推薦
- 2022-07-08 Python設(shè)置Word全局樣式和文本樣式的示例代碼_python
- 2022-05-28 Nginx實(shí)現(xiàn)Nacos反向代理的項(xiàng)目實(shí)踐_nginx
- 2022-04-29 利用Python分析一下最近的股票市場_python
- 2022-06-14 .NET?Core(.NET6)中g(shù)RPC使用實(shí)踐_實(shí)用技巧
- 2024-03-05 layui彈出層的表單驗(yàn)證(form表單自帶的驗(yàn)證不執(zhí)行)
- 2022-03-03 【elementUI】el-table 展開行默認(rèn)關(guān)閉或打開
- 2023-03-27 React?中的重新渲染實(shí)現(xiàn)_React
- 2022-07-30 @Autowired實(shí)現(xiàn)的原理
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支