大數據分析Python除了循環遍歷列表之外,for循環還有很多其他功能,在現實世界的數據科學工作中,可能需要將numpy數組和pandasDataFrames用於其他數據結構的循環。
大數據分析PythonFor循環教程以如何使用for循環遍歷列表以外的常見大數據分析Python數據結構(如元組和字典)開始。然後,我們將深入探討與普通的大數據分析Python數據科學圖書館像串聯使用for循環numpy,pandas和matplotlib。我們還將仔細研究該range()函數及其在編寫循環時的作用。
快速回顧:大數據分析PythonFor循環。
for循環是壹條編程語句,它告訴大數據分析Python遍歷對象集合,並對每個對象依次執行相同的操作。
每次大數據分析Python遍歷循環時,變量object都會采用序列中下壹個對象的值collection_of_objects,並且大數據分析Python將按順序執行我們在每個對象上編寫的代碼collection_of_objects。
現在,讓我們深入研究如何使用具有不同種類的數據結構的循環。我們將跳過列表,因為上壹教程已經介紹過這些列表。如果您需要進壹步檢查,請在列表和循環中查看入門教程或Dataquest的交互式任務。
數據結構
元組
元組是序列,就像列表壹樣。元組和列表之間的區別在於元組是不可變的。也就是說,它們不能更改(了解有關大數據分析Python中可變和不可變對象的更多信息)。元組還使用括號代替方括號。
不管這些差異如何,在元組上循環與列表非常相似。
如果我們有壹個元組列表,則可以通過將它們都作為變量包含在for循環中來訪問列表中每個元組中的各個元素。
辭典
除了列表和元組,字典是您在處理數據時可能會遇到的另壹種常見的大數據分析Python數據類型,並且for循環也可以遍歷字典。
大數據分析Python字典由鍵值對組成,因此在每個循環中,我們需要訪問兩個元素(鍵和值)。與其enumerate()像使用列表那樣使用,不如遍歷兩個鍵和每個鍵值對的對應值,我們需要調用該。items()方法。
例如,假設我們有壹個名為“字典”的字典stocks,其中包含股票行情自動收錄器和相應的股票價格。我們將使用。items()字典上的方法為每次叠代生成鍵和值。
請註意,名稱鍵和值完全是任意的。我們也可以將它們標記為k和v或x和y。
弦樂
如入門教程中所述,for循環還可以遍歷字符串中的每個字符。快速回顧壹下,這是如何工作的:
numpy數組
現在,讓我們看壹下常見的大數據分析Python數據科學包及其數據類型如何使用for循環。
我們將從研究如何使用numpy數組循環開始,因此讓我們從創建壹些隨機數數組開始。
在壹維numpy數組上進行叠代與在列表上進行叠代非常相似。
現在,如果我們要遍歷二維數組怎麽辦?如果我們使用與上面相同的語法來叠代二維數組,則每次叠代只能叠代整個數組。
二維數組是由壹對壹維數組構成的。要訪問每個元素而不是每個數組,我們可以使用numpy函數nditer(),它是壹個以數組作為參數的多維叠代器對象。
在下面的代碼中,我們將編寫壹個for循環,該循環將z二維數組作為參數傳遞給每個元素nditer()。
如我們所見,這首先列出了x中的所有元素,然後列出了y中的所有元素。
記得!當遍歷這些不同的數據結構時,字典需要壹個方法,numpy數組需要壹個function。
熊貓數據框
當我們使用大數據分析Python處理數據時,我們經常使用pandasDataFrames。值得慶幸的是,我們也可以使用for循環遍歷那些循環。
讓我們練習使用壹個小的CSV文件進行練習,該文件記錄六個不同國家的GDP,首都和人口。我們將在下面將其讀入pandasDataFrame中。
熊貓的工作方式與numpy有所不同,因此我們將無法簡單地重復已經學習的numpy過程。如果我們像遍歷壹個numpy數組壹樣嘗試遍歷pandasDataFrame,則只會打印出列名:
相反,我們需要明確提及我們要遍歷DataFrame的行。為此,我們iterrows()在DataFrame上調用方法,並打印行標簽和行數據,其中壹行是整個熊貓系列。
我們還可以從熊貓系列訪問特定值。假設我們只想打印出每個國家的首都。我們可以指定僅希望從“Capital”列中輸出。
為了使事情比簡單的打印輸出更進壹步,讓我們使用for循環添加壹列。讓我們添加“人均GDP”列。請記住,這。loc[]是基於標簽的。在下面的代碼中,我們將添加該列並通過將每個國家的總GDP除以其人口並將結果乘以壹萬億來計算每個國家的內容(因為GDP的數字以萬億為單位)。
對於數據框中的每壹行,我們將創建壹個新標簽,並將行數據設置為等於GDP總量除以該國人口,再乘以$1T得出數千美元。
該range()功能
我們已經看到了如何使用for循環叠代任何序列或數據結構。但是,如果我們想以特定順序或特定次數叠代這些序列,該怎麽辦?
這可以通過大數據分析Python的內置range()函數來完成。根據傳遞給該函數的參數數量,您可以確定該系列數字將在哪裏開始和結束以及壹個數字與下壹個數字之間的差值有多大。大數據分析PythonFor循環教程請註意,類似於列表,range()函數的計數從0開始而不是從1開始。
我們可以通過三種方式致電range():
a。範圍(停止)
b。範圍(開始,停止)
c。範圍(開始,停止,步進)
range(stop)
range(stop)有壹個參數,當我們要叠代從0開始的壹系列數字時使用,並包括直到但不包括我們設置為stop的數字的每個數字。
range(start,stop)
range(start,stop)有兩個參數,我們不僅可以設置序列的結尾,還可以設置起點。您可以使用range()使用range(A,B)生成從A到B的壹系列數字。
range(start,stop,step)
range(開始,停止,步進)采用三個參數。除了最小值和最大值之外,我們還可以設置序列中壹個數字與下壹個數字之間的差。如果未提供,則默認步進值為1。
請註意,這對於非數字序列也是如此。
我們還可以使用序列中元素的索引進行叠代。關鍵思想是首先計算列表的長度,然後在此長度範圍內叠代序列。讓我們看壹個例子:
在上面的for循環中,我們查看變量的索引和語言,in關鍵字以及range()創建數字序列的函數。請註意,我們也使用len()在這種情況下,函數,因為列表不是數字。
對於每次叠代,我們都在執行我們的打印語句。因此,對於len(languages)範圍內的每個索引,我們都希望打印壹種語言。因為我們的語言序列的長度是6(即計算得出的len(langauges)值),所以我們可以按以下方式重寫語句:
用For循環繪制
假設我們要遍歷壹個集合,並使用每個元素來生成壹個子圖,甚至是單個圖中的每個跡線。例如,讓我們采用流行的虹膜數據集(了解有關此數據的更多信息)並使用for循環進行壹些繪制。考慮下圖。
上面,我們繪制了每個萼片長度與萼片寬度的關系圖,但是我們可以通過在每個數據點上按每種花的種類分類給圖賦予更多的含義。壹種方法是通過使用for循環將每個點單獨散布並傳入相應的顏色。
如果我們想可視化虹膜數據集某些特征的單變量分布怎麽辦?我們可以使用來執行此操作plt。subplot(),它可以在網格內創建壹個子圖,可以設置其列數和行數。
暫時不深入了解matplotlib語法,以下是對圖的每個主要組件的簡要說明:
1)plt。subplot()–用於創建我們的2×2網格並設置整體大小。
2)zip()–這是壹個內置的大數據分析Python函數,使同時循環遍歷相同長度的多個可叠代對象變得非常簡單。
3)axes。flatten(),其中flatten()是壹種numpy數組方法–這將返回我們數組(列)的展平版本。
4)ax。set()–允許我們axes使用壹個方法設置對象的所有屬性。
附加操作
嵌套循環
大數據分析Python允許我們在另壹個循環中使用壹個循環。這涉及到壹個外部循環,該循環在其命令內部具有壹個內部循環。
考慮以下結構:
嵌套的for循環對於在由列表組成的列表中的項目之間進行叠代很有用。在壹個由列表組成的列表中,如果我們僅使用壹個for循環,則程序會將每個內部列表作為壹項輸出:
為了訪問內部列表的每個單獨項,我們定義了壹個嵌套的for循環:
在上方,外部for循環遍歷主列表列表(在此示例中包含兩個列表),內部for循環遍歷各個列表本身。外循環執行2次叠代(針對每個子列表),並且在每次叠代時,我們執行內循環,打印相應子列表的所有元素。
這告訴我們控件從最外層循環開始,遍歷內層循環,然後再次返回到外層for循環,壹直持續到控件覆蓋整個範圍為止,在這種情況下,該範圍是2倍。
繼續和打破循環
循環控制語句從其正常順序更改for循環的執行。
如果我們想在內部循環中濾除特定語言怎麽辦?我們可以使用continue語句來執行此操作,這使我們可以在觸發外部條件時跳過循環的特定部分。
在上面的循環中,在內層循環中,如果語言等於“德語”,我們將僅跳過該叠代,並繼續循環的其余部分。循環不會終止。
讓我們看下面的數字示例:
因此,在這裏,我們定義了壹個循環,該循環遍歷所有數字0到9,並對每個數字求平方。在循環中,在每次叠代中,我們都在檢查數字是否可被2整除,這時循環將繼續執行,當我求出偶數時,將跳過該叠代。
怎麽樣壹個break語句?這使我們可以在滿足外部條件時完全退出循環。讓我們使用與上面相同的示例來簡單演示其工作原理:
在上面的示例中,我們的if語句提出了以下條件:如果我們的變量i的值等於7,則循環將中斷,因此我們的循環將在0到6之間對整數進行叠代,然後再完全退出循環。
尋找更多?以下是壹些可能有用的其他資源:
1)大數據分析Python教程—我們不斷擴展的數據科學大數據分析Python教程列表。
2)數據科學課程-直接在瀏覽器中通過完全交互式的編程,數據科學和統計課程將您的學習提升到壹個新的水平。
結論
在大數據分析PythonFor循環教程中,我們了解了for循環的壹些更高級的應用程序,以及如何在典型的大數據分析Python數據科學工作流中使用它們。
我們學習了如何叠代不同類型的數據結構,以及如何將循環與pandasDataFrames和matplotlib壹起使用以編程方式創建多個跟蹤或子圖。
最後,我們研究了壹些更高級的技術,這些技術使我們可以更好地控制for循環的操作和執行。