python雜記 二(筆記)

2022-04-04 14:28:25 字數 1152 閱讀 8392

進行分片的時候,分片的開始和結束點需要進行指定(不管是直接還是間接)。而另外乙個引數(在python 2.3 加入到內建型別)--步長(step length)--通常都是隱式設定的。在普通的分片中,步長是1--分片操作就是按照這個步長逐個遍歷序列的元素,然後返回開始和結束點之間的所有元素。

>>> numbers[0:10:1]  

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

在這個例子中,分片包含了另外乙個數字。沒錯,這就是步長的顯式設定。如果步長被設定為比1大的數,那麼就會跳過某些元素。例如,步長為2的分片包括的是從開始到結束每隔1個的元素。

>>> numbers[0:10:2]  

[1, 3, 5, 7, 9]  

numbers[3:6:3]  

[4]之前提及的捷徑也可以使用。如果需要將每4個元素中的第1個提取出來,那麼只要將步長設定為4即可:

>>> numbers[::4]  

[1, 5, 9]

當然,步長不能為0--那不會向下執行--但步長可以是負數,即從右到左提取元素:

>>> numbers[8:3:-1]  

[9, 8, 7, 6, 5]  

>>> numbers[10:0:-2]  

[10, 8, 6, 4, 2]  

>>> numbers[0:10:-2]  

>>> numbers[::-2]  

[10, 8, 6, 4, 2]  

>>> numbers[5::-2]  

[6, 4, 2]  

>>> numbers[:5:-2]  

[10, 8]

在這裡要得到正確的分片結果需要動些腦筋。開始點的元素(最左邊元素)包括在結果之中,而結束點的元素(最右邊的元素)則不在分片之內。當使用乙個負數作為步長時,必須讓開始點(開始索引)大於結束點。在沒有明確指定開始點和結束點的時候,正負數的使用可能會帶來一些混淆。不過在這種情況下python會進行正確的操作:對於乙個正數步長,python會從序列的頭部開始向右提取元素,直到最後乙個元素;而對於負數步長,則是從序列的尾部開始向左提取元素,直到第乙個元素。

關於紅色字型的例子

>>> number[6:5:-2]

[7]>>> number[6:5]

>>> number[5:6:-2]

理解矩陣 二 筆記

僅記錄學習孟巖老師的 blog 時的收穫,孟巖老師的原文章見 初等數學是研究常量的數學,是研究靜態的數學,高等數學是變數的數學,是研究運動的數學。重溫微積分 齊民友教授 運動 連續過程,逐點經過。躍遷 不需要逐點經過,瞬間發生的行為。矩陣是線性空間裡躍遷的描述。矩陣是線性空間裡變換的描述。變換 空間...

r語言(二)筆記

概述 r是用於統計分析 繪圖的語言和操作環境 物件 資料型別 統稱為物件 向量 vector 用於儲存數值型 字元型或邏輯型資料的一維陣列。定義向量 v 1 v1 c 1,2,3 或者 assign v1 c 1,2,3 v 1 10 1 10 is.vector v 向量的輸出 v 或者 prin...

Matlab 程式設計基礎(二)筆記

執行字串所代表的函式,可以在函式執行中修改所執行的指令和引數。y eval expression expression指定的運算 a1,a2,a3,eval func b1,b2,b3,呼叫func函式檔案輸出結果 y1,y2,feval func arg1,arg2,func為函式名。類把資料和資...