Numpy創(chuàng)建NumPy矩陣的簡(jiǎn)單實(shí)現(xiàn)
創(chuàng)建NumPy矩陣
NumPy對(duì)于多維數(shù)組的運(yùn)算,默認(rèn)情況下并不進(jìn)行矩陣運(yùn)算。如果需要對(duì)數(shù)組進(jìn)行矩陣運(yùn)算,則可以調(diào)用相應(yīng)的函數(shù)。
在NumPy中,矩陣是ndarray的子類。
在NumPy中,數(shù)組和矩陣有著重要的區(qū)別。NumPy提供了兩個(gè)基本的對(duì)象:一個(gè)N維數(shù)組對(duì)象和一個(gè)通用函數(shù)對(duì)象。其他對(duì)象都是在它們之上構(gòu)建的。
矩陣是繼承自NumPy數(shù)組對(duì)象的二維數(shù)組對(duì)象。與數(shù)學(xué)概念中的矩陣一樣,NumPy中的矩陣也是二維的。
1. 創(chuàng)建矩陣
可以使用mat、matrix以及bmat函數(shù)來(lái)創(chuàng)建矩陣。使用mat函數(shù)創(chuàng)建矩陣時(shí),若輸入matrix或ndarray對(duì)象,則不會(huì)為它們創(chuàng)建副本。因此,調(diào)用mat函數(shù)和調(diào)用matrix(data, copy=False)等價(jià)。
案例:創(chuàng)建矩陣
# 導(dǎo)入NumPy庫(kù)
import numpy as np
# 使用分號(hào)隔開(kāi)數(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í)候會(huì)根據(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ì)算是針對(duì)整個(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('矩陣對(duì)應(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]]
矩陣對(duì)應(yīng)元素相乘結(jié)果為: [[ 3 12 27]
[ 48 75 108]
[147 192 243]]
4. 矩陣屬性
除了能夠?qū)崿F(xiàn)各類運(yùn)算外,矩陣還有其特有的屬性。
| 屬性 | 說(shuō)明 |
|---|---|
| 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.]]
到此這篇關(guān)于Numpy創(chuàng)建NumPy矩陣的簡(jiǎn)單實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Numpy創(chuàng)建NumPy矩陣內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Python調(diào)取任意數(shù)字資產(chǎn)錢包余額功能
那資產(chǎn)放在錢包的時(shí)候,如何來(lái)監(jiān)控余額呢?任何數(shù)字資產(chǎn)都可以使用區(qū)塊瀏覽器來(lái)查詢余額,那我們只要從此著手,用Python調(diào)取區(qū)塊瀏覽器,來(lái)查詢余額就能實(shí)現(xiàn)所有資產(chǎn)的余額監(jiān)控,感興趣的朋友跟隨小編一起看看吧2019-08-08
Python標(biāo)準(zhǔn)庫(kù)sched模塊使用指南
這篇文章主要介紹了Python標(biāo)準(zhǔn)庫(kù)sched模塊使用的相關(guān)資料,需要的朋友可以參考下2017-07-07
通過(guò)OpenCV實(shí)現(xiàn)對(duì)指定顏色的物體追蹤
這篇文章主要介紹的是通過(guò)OpenCV實(shí)現(xiàn)對(duì)特定顏色的物體追蹤,文中實(shí)驗(yàn)用的是綠蘿的樹(shù)葉。本文的示例代碼講解詳細(xì),對(duì)學(xué)習(xí)OPenCV有一定的幫助,感興趣的小伙伴可以了解一下2021-12-12
基于Python數(shù)據(jù)可視化利器Matplotlib,繪圖入門篇,Pyplot詳解
下面小編就為大家?guī)?lái)一篇基于Python數(shù)據(jù)可視化利器Matplotlib,繪圖入門篇,Pyplot詳解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10
Python UnicodeEncodeError: ''gbk'' codec can''t encode chara
這篇文章主要介紹了Python UnicodeEncodeError: 'gbk' codec can't encode character 解決方法,需要的朋友可以參考下2015-04-04
在pytorch中為Module和Tensor指定GPU的例子
今天小編就為大家分享一篇在pytorch中為Module和Tensor指定GPU的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08

