1.4.1 Basic Slicing and Indexing
說(shuō)明:
元組索引其實(shí)就是方括號(hào)里添加索引
可以引發(fā)basic index的情況:
- slice對(duì)象
- integer
- slice對(duì)象揍魂,integer易桃,newaxis,Ellipse的元組形式
- newaxis
- 當(dāng)是列表時(shí),列表里面不只包含數(shù)字,還包含slice,Ellipsis,newaxis荧降,則也會(huì)觸發(fā)高級(jí)索引
索引都是從 0 開(kāi)始哟冬,并且負(fù)數(shù)索引表示從后面開(kāi)始記起
下面的切片浩蓉,不管怎么表示恢暖,都要將其理解為 0-(n-1) 范圍內(nèi)的索引运褪,然后索引出對(duì)應(yīng)的值
簡(jiǎn)單索引绝葡,產(chǎn)生的數(shù)組都是原數(shù)組的視圖
1. 其中 i+(m-1)k < j , 即取不到j(luò)處。
1. 使用負(fù)數(shù)的步長(zhǎng),表示的是從大索引處走向小索引處
2. 展示的結(jié)果是:從步長(zhǎng)起步的索引處開(kāi)始展示結(jié)果比驻,如圖中example
切片省略情況下棋蚌,指示的默認(rèn)值:
1. 左邊->0 ; 右邊->n(注意是n璃诀,超出索引范圍弧可,這樣才能取到);k->1;
2. 維度不夠劣欢,默認(rèn)表示 :
3. ellipsis用 : 進(jìn)行擴(kuò)展棕诵,其實(shí)就是在最后一個(gè)維度之前進(jìn)行擴(kuò)展裁良,并且表達(dá)式中只能有一個(gè) ...
4. newaxis : 用來(lái)增加一個(gè)維度
想說(shuō)明的就是:只要元組里面出現(xiàn)了一個(gè)整數(shù),那么返回的結(jié)果維度減1校套;
另外趴久,如果維度減到0了,那么返回的就是一個(gè)標(biāo)量
1. 使用切片返回的結(jié)果維度不變
2. 對(duì)于數(shù)組的選擇搔确,本質(zhì)就是其他維度不變彼棍,對(duì)于被處理的維度,將其理解為從這個(gè)維度切下來(lái)一個(gè)平面膳算,然后根據(jù)被處理的維度上選擇的結(jié)果座硕,將切割的平面拼接一起就是索引結(jié)果。(如下圖)
簡(jiǎn)單切片涕蜂,可以理解為每個(gè)維度反復(fù)應(yīng)用切片华匾,每一次切片在上一次切的結(jié)果下繼續(xù)切
1. 簡(jiǎn)單切片特性和高級(jí)切片特性不同
2. array數(shù)組能夠通過(guò)等于號(hào)為其賦值,但是數(shù)組的大小不能變化
3. 賦值的時(shí)候机隙,等號(hào)右邊的對(duì)象蜘拉,必須能夠廣播為和左邊被賦值對(duì)象相同形狀,操作才能成功
Advanced Indexing
高級(jí)索引特點(diǎn):
1. 索引對(duì)象是數(shù)組
2. 索引對(duì)象是元組有鹿,但是元組里面至少包含一個(gè)序列或者數(shù)組
上面的兩種情況都會(huì)觸發(fā)高級(jí)索引
3. 高級(jí)索引用的索引值旭旭,只能是布爾型和數(shù)值型
觸發(fā)不同索引總結(jié):當(dāng) [] 里面包含多個(gè)對(duì)象時(shí),則想象外面套一個(gè)元組葱跋,(如x[(1,2,3),])或者本身就已經(jīng)元組嵌套持寄,如x[(1,2,3)] 這兩種情況下都用元組判斷原則來(lái)判斷,即里面至少有一個(gè)序列時(shí)娱俺,則引發(fā)高級(jí)索引稍味,否則引發(fā)普通索引。當(dāng) [] 里面已經(jīng)是 [] 時(shí)荠卷,觀察里面是否都是數(shù)字模庐,如果都是數(shù)字,如x[[1,2,3]]則引發(fā)高級(jí)索引油宜;如果不都是數(shù)字掂碱,則在多個(gè)維度上引發(fā)普通索引,如x[[1,2,::]]验庙。
高級(jí)索引返回的都是原數(shù)組的復(fù)制版本
1. 數(shù)組中每個(gè)值表示選出這個(gè)維度中的哪幾列
2. 當(dāng)索引對(duì)象中包含多個(gè)數(shù)組顶吮,那么這些數(shù)組會(huì)廣播
3. 用數(shù)組進(jìn)行索引的那幾個(gè)維度社牲,最后返回結(jié)果的形狀和數(shù)組的形狀相同
4. 高級(jí)索引不同于普通索引粪薛,可以重復(fù)一個(gè)索引操作,在高級(jí)索引中搏恤,是多個(gè)數(shù)組共同作用违寿,表示某一個(gè)位置的坐標(biāo)才索引出結(jié)果湃交。
使用方法1:表示第幾行第幾列中的數(shù)組,需要構(gòu)建坐標(biāo)藤巢,構(gòu)建坐標(biāo)有兩種方法搞莺,一種就是直接自己加newaxis,如圖,另一種就是使用 ix_.
使用方法2:就是圖1中那樣掂咒,索引出零散的值才沧,索引對(duì)象中的數(shù)組表示坐標(biāo),由于沒(méi)有重復(fù)特性绍刮,所以需要將所有位置都寫出
1. 高級(jí)切片結(jié)合基礎(chǔ)切片分為兩種情況温圆,第一種就是高級(jí)索引的矩陣是分離的,第二種就是二級(jí)索引的矩陣是連一起的孩革。
2. 對(duì)于高級(jí)切片結(jié)合基礎(chǔ)切片索引結(jié)果的說(shuō)明岁歉,主要結(jié)合形狀進(jìn)行說(shuō)明,如果是二級(jí)索引的矩陣是連一起的情況膝蜈,那么相當(dāng)于將被索引的那幾個(gè)維度的形狀換為高級(jí)索引數(shù)組的形狀锅移;如果是高級(jí)索引的矩陣是分離的情況,那么將被索引的那幾個(gè)維度剔除饱搏,換成索引數(shù)組的維度非剃,并且放在索引結(jié)果的開(kāi)頭部分。
3. 至于內(nèi)部數(shù)據(jù)是怎么放置的推沸,上面已經(jīng)得到了索引結(jié)果的形狀努潘,內(nèi)容就相當(dāng)于將所引導(dǎo)的結(jié)果插入被索引的那個(gè)維度或者那個(gè)平面上
**布爾型索引重點(diǎn)在于,將索引對(duì)象調(diào)用nonzero()的結(jié)果當(dāng)作索引坤学。