首先就是大腸包小腸,這就是軸的概念,除了這個(gè)還真的沒有什么別的想法。
最近用numpy,越用這個(gè)東西越發(fā)現(xiàn)一些基礎(chǔ)概念不明朗,這里簡(jiǎn)單的記錄一下。
先生成一個(gè)三維的數(shù)組
打印出來(lái)的樣子
從內(nèi)最小的開始看起,分別是元素,2,3,4
以小[]來(lái)界定
也就是說(shuō),首先是一個(gè)特別大的整體,一個(gè)數(shù)組,接著是里面4個(gè)小數(shù)組,每一個(gè)小數(shù)組里面有3個(gè)小數(shù)組,小數(shù)組內(nèi)的單元是一個(gè)數(shù)對(duì)來(lái)構(gòu)成的。
其實(shí)這就是軸的概念,只是因?yàn)槭潜馄交模恢庇^。
axis=2
axis=1
axis=0
按照順序來(lái)填充
按照數(shù)組0軸來(lái)相加
就是加的這個(gè)位置的元素
[[0+ 6+12+18=36 1+ 7+13+19=40] [2+ 8+14+20=44 3+ 9+15+21=48] [4+10+16+22=52 5+11+17+23=56]]
再看一個(gè)
就是這樣吧
[[ 0+ 1=1 2+ 3=5 4+ 5=9] [ 6+ 7=13 8+ 9=17 10+11=21] [12+13=25 14+15=29 16+17=33] [18+19=37 20+21=41 22+23=45]]
這個(gè)就沒有什么好說(shuō)的了吧
其中第一軸是最大的稱為0號(hào),
其次開始從左到右依次的放置
NumPy數(shù)組的維數(shù)稱為秩(rank),一維數(shù)組的秩為1,二維數(shù)組的秩為2,以此類推。在NumPy中,每一個(gè)線性的數(shù)組稱為是一個(gè)軸(axes),秩其實(shí)是描述軸的數(shù)量。比如說(shuō),二維數(shù)組相當(dāng)于是兩個(gè)一維數(shù)組,其中第一個(gè)一維數(shù)組中每個(gè)元素又是一個(gè)一維數(shù)組。所以一維數(shù)組就是NumPy中的軸(axes),第一個(gè)軸相當(dāng)于是底層數(shù)組,第二個(gè)軸是底層數(shù)組里的數(shù)組。而軸的數(shù)量——秩,就是數(shù)組的維數(shù)。
NumPy的數(shù)組中比較重要ndarray對(duì)象屬性有:
1.ndarray.ndim:數(shù)組的維數(shù)(即數(shù)組軸的個(gè)數(shù)),等于秩。最常見的為二維數(shù)組(矩陣)。
2.ndarray.shape:數(shù)組的維度。為一個(gè)表示數(shù)組在每個(gè)維度上大小的整數(shù)元組。例如二維數(shù)組中,表示數(shù)組的“行數(shù)”和“列數(shù)”。ndarray.shape返回一個(gè)元組,這個(gè)元組的長(zhǎng)度就是維度的數(shù)目,即ndim屬性。
3.ndarray.size:數(shù)組元素的總個(gè)數(shù),等于shape屬性中元組元素的乘積。
4.ndarray.dtype:表示數(shù)組中元素類型的對(duì)象,可使用標(biāo)準(zhǔn)的Python類型創(chuàng)建或指定dtype。另外也可使用前一篇文章中介紹的NumPy提供的數(shù)據(jù)類型。
5.ndarray.itemsize:數(shù)組中每個(gè)元素的字節(jié)大小。例如,一個(gè)元素類型為float64的數(shù)組itemsiz屬性值為8(float64占用64個(gè)bits,每個(gè)字節(jié)長(zhǎng)度為8,所以64/8,占用8個(gè)字節(jié)),又如,一個(gè)元素類型為complex32的數(shù)組item屬性為4(32/8)。
6.ndarray.data:包含實(shí)際數(shù)組元素的緩沖區(qū),由于一般通過(guò)數(shù)組的索引獲取元素,所以通常不需要使用這個(gè)屬性。
其實(shí)進(jìn)一步的,是闡述了一種方向的問(wèn)題:在二維數(shù)組中axis=0是按列的,axis=1意味著按行。
這個(gè)圖太漂亮了
事實(shí)上,到這里的時(shí)候還是沒有說(shuō)明白主要的軸到底是怎么出來(lái)的,那繼續(xù)。
軸是行列的方向
如果是多維的數(shù)組,那axis=0就是向下的軸,axis=1是往右延的軸。
這些東西影響著你未來(lái)作用到上面的函數(shù),該算哪些東西。而且進(jìn)行計(jì)算的時(shí)候是會(huì)進(jìn)行折疊,就是從這些指定的位置采用運(yùn)算規(guī)律。
就是這樣的,加到一起,2就變成了1
axis=0的拼接方式
axis=1,橫向拼接
結(jié)論:將NumPy軸視為我們可以執(zhí)行操作的方向。
接下來(lái)再補(bǔ)充一些,別的理解,盡量我們一篇文章解決這個(gè)問(wèn)題。
這個(gè)也是
這個(gè)圖是讓我喜歡的不行,它清楚的展示了這個(gè)數(shù)組軸的包含關(guān)系
數(shù)組之間的算數(shù)關(guān)系
運(yùn)算緊湊,使用了非動(dòng)態(tài)的特性
使用Python的列表語(yǔ)法可以輕松的創(chuàng)建一個(gè)數(shù)組,要確保元素都一致
由于數(shù)組的原因,沒有了動(dòng)態(tài)添加元素的特性,所以只能提前的把位置留好。
再有了變量的情況先,可以使用like函數(shù)生成一個(gè)相似的數(shù)組
提供了完整的生成函數(shù)
可以使用單調(diào)序列初始化數(shù)組
arange對(duì)浮點(diǎn)不太友好
隨機(jī)數(shù)組也可以生成,這個(gè)太常見了
生成完成了,下一個(gè)階段就是取數(shù)了;
就像這樣,通過(guò)索引來(lái)切割
布爾和掩碼真的是太好用了!!!!
還有專有的函數(shù),大規(guī)模的進(jìn)行取數(shù)操作
向量化操作無(wú)疑是最引人注目的東西
浮點(diǎn)也OJBK
常見函數(shù)不在話下,矢量化的意義在于可以同時(shí)操作海量數(shù)據(jù),具有天然的并行化。
這是內(nèi)積和叉積
三角函數(shù)不能少
四舍五入的操作也有
關(guān)于統(tǒng)計(jì)的功能也有
矩陣的初始化,注意參數(shù)的位置,先行,后列
隨機(jī)矩陣也是經(jīng)常要用的
索引語(yǔ)法要好好的看,注意是從0開始,記得+1
上面放過(guò)這個(gè)圖,但是為了完整性,這里再放一次
@計(jì)算矩陣的乘積
廣播機(jī)制,這個(gè)怎么說(shuō)呢。就是運(yùn)算我們一般是規(guī)模相同的進(jìn)行計(jì)算,不相同的時(shí)候需要變的相同。其實(shí)就是一套規(guī)則。
先簡(jiǎn)單點(diǎn),規(guī)模一樣
這個(gè)就不一樣了
這就是廣播,先是維數(shù)的調(diào)整,兩個(gè)維數(shù)一致,接著調(diào)整內(nèi)部的參數(shù)
你看這個(gè),9x9與后面這樣的東西運(yùn)算,不就是要使用廣播嗎?
轉(zhuǎn)置
數(shù)組重構(gòu)
互相之間的轉(zhuǎn)換圖,這個(gè)要記住
拼接操作,我也寫過(guò)
也是拼接
拆分
tile復(fù)雜黏貼,repeat是分頁(yè)打印
這個(gè)是可以刪除對(duì)應(yīng)的行列,這不就是白給
插入操作
邊界添加常數(shù),就好像鑲邊一樣
下面的內(nèi)容有趣:
創(chuàng)建這樣的東西,C和Python的做法是這樣的
matlab這樣做,相對(duì)于先生成兩個(gè)行向量,接著開始廣播,運(yùn)算
這個(gè)地方是numpy的做法,效率更高。上面是生成網(wǎng)格的算法
numpy的排序算法有點(diǎn)問(wèn)題,這里就不討論了,因?yàn)槲乙矝]有搞明白
返回索引,其實(shí)就是坐標(biāo),有時(shí)位置是很重要的
all和any就是有沒有的問(wèn)題
三維的接下來(lái)會(huì)說(shuō)
至于形狀怎么樣,會(huì)看你的約定。
接下來(lái)再加點(diǎn)東西,也不知道有沒有人能看到這里。
上面頻繁的說(shuō)了拼接的事情,這里帶你看看有什么參數(shù)
這個(gè)圖沒什么用,我就是覺得好看
審核編輯 :李倩
-
元素
+關(guān)注
關(guān)注
0文章
47瀏覽量
8623 -
數(shù)據(jù)類型
+關(guān)注
關(guān)注
0文章
237瀏覽量
13897 -
數(shù)組
+關(guān)注
關(guān)注
1文章
420瀏覽量
26541
原文標(biāo)題:Numpy詳解-軸的概念
文章出處:【微信號(hào):TT1827652464,微信公眾號(hào):云深之無(wú)跡】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
GraniStudio零代碼平臺(tái)軸復(fù)位算子支持多少個(gè)軸同時(shí)復(fù)位,有哪些回零模式?

鴻蒙應(yīng)用px,vp,fp概念詳解

【HarmonyOS 5】鴻蒙中的UIAbility詳解(三)
電機(jī)為什么會(huì)產(chǎn)生軸電流?

使用micropython的ulab.numpy切片將RGB888的NHWC格式轉(zhuǎn)換為RGBP888的NCHW格式,速度非常慢怎么解決?
Chart FX——坐標(biāo)軸簡(jiǎn)介

帶你了解中空軸步進(jìn)電機(jī)作用

使用MSPM0 MCU設(shè)計(jì)單軸和三軸自拍桿

單軸測(cè)徑儀詳解與應(yīng)用
單軸和雙軸測(cè)徑儀在線纜方面的應(yīng)用
與白光干涉儀相關(guān)的精度概念都有哪些

評(píng)論