python 多維切片之冒號和三個點的用法介紹

2022-10-04 19:57:06 字數 667 閱讀 5549

初學python和numpy,對在學習多維切片的過程中遇到的問題做個總結。

一維切片就不說了,比較簡單,先說下二維的,二維的理解了多維的就簡單了。舉個例子先建立乙個5x5的二維陣列

多維的切片是按照各個維度分別取

這裡就分別輸出第一維的2-3和第二維的3-5(索引從0開始)。

這裡是行取全部,列取第3-5。

這裡應該是大家最疑惑的地方了,為什麼列的引數改成none,輸出的shape都變了,這裡大家要知道,none代表新增加乙個維度,它有乙個別稱叫newaxis,大家可以輸出一下numpy.newaxis就知道了,那麼這個別稱應該顧名思義了吧。那麼為什麼是5x1x5,而不是5x5x1呢,那是因為你在第二維上用程式設計客棧了none,你如果在第三維上用就會變成5x5x1了,不信你看

這下大家應該明白了吧。就是說none放在哪一維,就會在哪一維上出現新的維度。

再看個更奇葩的

三個點是什麼鬼,憑記憶這不是可以換行的操作麼,但這裡不程式設計客棧是,它是省略所有的冒號來用省略號代替,大家看這個a[:, :, none]和a[…, none]的輸出是一樣的,就是因為…代替了前面兩個冒號。這下應該清楚了。

至於三維以上的,那跟二維是一模一樣啊。

本文標題: python 多維切片之冒號和三個點的用法介紹

本文位址: /jiaoben/python/225521.html

python切片冒號的用法

python的切片主要用在tuple和list這類帶有索引index的資料結構上,用來取具體陣列元素,或某一段陣列元素 正索引 0,1,2,3,4,這個就不說了 負索引 1為最後乙個元素,2為倒數第二個 object start end step start 起始index,包含 end 結束ind...

Python之切片和迭代

l a b c d l 0 3 表示取前三個元素,當從索引0開始取的時候,0可以省略,寫作為l 3 l 表示從頭到尾。l 1 10 2 表示從索引號為1的開始到索引號為10的結束,不包括索引號為10的元素,每2個取出乙個,即隔乙個取乙個。tuple切片與list相同。range 可以建立乙個數列 r...

python正向切片 python之切片

切片可以切字串str 列表list 元組tuple,以列表為例 1 使用索引獲取列表中某個元素 0 1 2 3 list a b c d 4 3 2 1 print list 0 list 4 list 0 list 4 的值均為 a list 0 為正向索引,list 4 為負向索引 2 列表中的...