python生成單位陣或?qū)顷嚨娜N方式小結(jié)
python生成單位陣或?qū)顷?/h2>
前提:
import numpy as np
1.identity
np.identity(4)
array([[ 1., 0., 0., 0.],
[ 0., 1., 0., 0.],
[ 0., 0., 1., 0.],
[ 0., 0., 0., 1.]])
2.eye
np.eye(4)
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
3.diag(可以指定對(duì)角元素)
np.diag([1] * 4) Out[1]:? array([[1, 0, 0, 0], ? ? ? ?[0, 1, 0, 0], ? ? ? ?[0, 0, 1, 0], ? ? ? ?[0, 0, 0, 1]]) np.diag([2] * 4) Out[2]:? array([[2, 0, 0, 0], ? ? ? ?[0, 2, 0, 0], ? ? ? ?[0, 0, 2, 0], ? ? ? ?[0, 0, 0, 2]])
有趣的地方是前兩種方法元素都是浮點(diǎn)數(shù),最后一種是整數(shù),使用的時(shí)候注意區(qū)分就好
python創(chuàng)建對(duì)角陣的np.eye()函數(shù)
最近博主在研究kalman濾波,里面初始矩陣定義需要對(duì)角陣,于是查了一些資料,發(fā)現(xiàn)numpy中有一個(gè)eye函數(shù)可以達(dá)到這樣的目的
np.eye(N,M=None,k=0,dtype=<class 'float'>,order='C)
N表示輸出的行數(shù);M表示輸出的列數(shù),不給默認(rèn)等于N;K默認(rèn)等于0,表示主對(duì)角線,負(fù)數(shù)代表低對(duì)角,正數(shù)代表高對(duì)角;dtype表示輸出數(shù)據(jù)的類型;order表示輸出的數(shù)組的形式是按照C語言的行優(yōu)先’C’,還是按照Fortran形式的列優(yōu)先‘F’存儲(chǔ)在內(nèi)存中。
看下面兩個(gè)例子就明白用法啦
a = np.eye(4)
print(type(a))
print(a)
a = np.mat(a)
print(type(a))
print(a)
a = a.I
print(type(a))
print(a)
>>><class 'numpy.ndarray'>
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
<class 'numpy.matrix'>
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
<class 'numpy.matrix'>
[[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]]
a = np.eye(4,k=1)
print(type(a))
print(a)
a = np.mat(a)
print(type(a))
print(a)
a = a.T
print(type(a))
print(a)
>>><class 'numpy.ndarray'>
[[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]
<class 'numpy.matrix'>
[[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]
<class 'numpy.matrix'>
[[0. 0. 0. 0.]
[1. 0. 0. 0.]
[0. 1. 0. 0.]
[0. 0. 1. 0.]]
動(dòng)動(dòng)小手,感悟一下就好啦!以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python JWT認(rèn)證與pyjwt包詳細(xì)介紹
JWT的聲明一般被用來在身份提供者和服務(wù)提供者間傳遞被認(rèn)證的用戶身份信息,以便于從資源服務(wù)器獲取資源,也增加一些額外的其它業(yè)務(wù)邏輯所必須的聲明信息,該token也可直接被用于認(rèn)證,也可被加密,這篇文章主要介紹了Python JWT認(rèn)證與pyjwt包簡(jiǎn)介,需要的朋友可以參考下2023-05-05
解決python有時(shí)候import不了當(dāng)前的包問題
今天小編就為大家分享一篇解決python有時(shí)候import不了當(dāng)前的包問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python的Pillow庫進(jìn)行圖像文件處理(圖文詳解)
本文詳解的講解了使用Pillow庫進(jìn)行圖片的簡(jiǎn)單處理,使用PyCharm開發(fā)Python的詳細(xì)過程和各種第三方庫的安裝與使用。感興趣的可以了解一下2021-11-11
使用pandas中的DataFrame.rolling方法查看時(shí)間序列中的異常值
Pandas是Python中最受歡迎的數(shù)據(jù)分析和處理庫之一,提供了許多強(qiáng)大且靈活的數(shù)據(jù)操作工具,在Pandas中,DataFrame.rolling方法是一個(gè)強(qiáng)大的工具,在本文中,我們將深入探討DataFrame.rolling方法的各種參數(shù)和示例,以幫助您更好地理解和應(yīng)用這個(gè)功能2023-12-12
使用wxPython和OpenCV實(shí)現(xiàn)手勢(shì)識(shí)別相機(jī)功能
在這篇博客中,我將分享一個(gè)有趣的?Python?項(xiàng)目:通過?wxPython?創(chuàng)建圖形界面,利用?OpenCV?的計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)實(shí)時(shí)手勢(shì)識(shí)別,以下是項(xiàng)目的完整實(shí)現(xiàn)過程,包括代碼分析、使用說明和可能的優(yōu)化建議,需要的朋友可以參考下2025-04-04
簡(jiǎn)述Python2與Python3的不同點(diǎn)
在Python2和Python3中都提供print()方法來打印信息,但兩個(gè)版本間的print稍微有差異。下面通過本文給大家介紹Python2與Python3的不同點(diǎn),需要的朋友參考下2018-01-01
Python實(shí)現(xiàn)簡(jiǎn)單猜拳游戲
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)單猜拳游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01

