numpy如何取出對角線元素、計(jì)算對角線元素和np.diagonal
numpy取出對角線元素、計(jì)算對角線元素和np.diagonal
np.diagonal(a, offset=0, axis1=0, axis2=1)
直接上例子:
1、二維數(shù)組
二維數(shù)組,重點(diǎn)理解offset參數(shù)。offset默認(rèn)0,即從位置為(0,0)的元素斜45°角指向的元素。
當(dāng)offset=1時(shí),對角線向上移動(dòng)1個(gè)位置,offset=2,移動(dòng)兩個(gè)位置,以此類推。
當(dāng)offset取負(fù)值時(shí),向下移動(dòng)相應(yīng)的位置數(shù)量。
見下:
arr =np.arange(9).reshape(3,3)
arr
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
------------------------------------
np.diagonal(arr)
array([0, 4, 8])
------------------------------------
np.diagonal(arr,offset=1)
array([1, 5])
------------------------------------
np.diagonal(arr,offset=2)
array([2])offset取值如下,不管數(shù)組是正方的還是長方形的,offset偏移方法是一樣的。

2、三維數(shù)組
三維數(shù)組較復(fù)雜,重點(diǎn)是axis1和axis2的理解。
先看例子:
arr = np.array([[[ 9, 5, 2, 7],
[ 7, 2, 5, 9],
[ 5, 2, 9, 7]],
[[1, 0, 2, 4],
[4, 2, 1, 0],
[0, 4, 2, 2]]])
--------------------------------
np.diagonal(arr) # 默認(rèn)axis1 = 0,axis2 = 1
array([[9, 4],
[5, 2],
[2, 1],
[7, 0]])上一個(gè)圖:

默認(rèn)是在axis = 0,axis = 1方向上取對角數(shù)據(jù),即如下是我們在這個(gè)方向上看到的第一個(gè)3x2二維數(shù)組,后面還有三個(gè)3x2二維數(shù)組,對角線元素就是這4個(gè)二維數(shù)組的對角元素:

在舉一個(gè)例子:
np.diagonal(arr,axis1=0, axis2=2)
array([[9, 0],
[7, 2],
[5, 4]])我們改在axis = 0,axis =2方向上取對角數(shù)據(jù),即如下是我們在這個(gè)方向上看到的第一個(gè)2x4二維數(shù)組,后面還有2個(gè)2x4二維數(shù)組,對角線元素就是這3個(gè)二維數(shù)組的對角元素:

選取兩個(gè)aixs可以認(rèn)為是由這兩軸確定的平面來截取數(shù)組,將數(shù)組分成相應(yīng)的二維數(shù)組。
從垂直于這個(gè)平面也就是另外一個(gè)軸來觀察數(shù)組,比如上面的例子,我們從事從軸1去看數(shù)組,取數(shù)。
生成對角矩陣 numpy.diag
給定對角線上元素,我想生成對角矩陣,在網(wǎng)上搜了一下,竟然都是numpy.diagonal。
這個(gè)函數(shù)的作用是提取給定矩陣的對角元素,當(dāng)然不是我想要的。
后來發(fā)現(xiàn)numpy.diag才是生成對角矩陣的函數(shù),所以記錄下。
import numpy as np a=[1,2,3] np.diag(a) Out[4]:? array([[1, 0, 0], ? ? ? ?[0, 2, 0], ? ? ? ?[0, 0, 3]])
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談關(guān)于Python3中venv虛擬環(huán)境
這篇文章主要介紹了淺談關(guān)于Python3中venv虛擬環(huán)境,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-08-08
Django基于Token的驗(yàn)證使用的實(shí)現(xiàn)
本文主要介紹了Django基于Token的驗(yàn)證使用的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
Python利用subplots_adjust方法解決圖表與畫布的間距問題
這篇文章主要介紹了如何在使用python?的?matplotlib庫繪圖時(shí),?使用subplots_adjust()方法來調(diào)整圖表與畫布之間的間距,以及圖表與圖表之間的間距,感興趣的可以了解一下2022-04-04
如何實(shí)現(xiàn)一個(gè)python函數(shù)裝飾器(Decorator)
這篇文章主要介紹了如何實(shí)現(xiàn)一個(gè)python函數(shù)裝飾器(Decorator),幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-10-10

