旗下產(chǎn)業(yè): A產(chǎn)業(yè)/?A實(shí)習(xí)/?A計(jì)劃
全國(guó)統(tǒng)一咨詢熱線:010-5367 2995
首頁(yè) > 熱門文章 > 大數(shù)據(jù)分析 > 大數(shù)據(jù)分析Python For循環(huán)教程

大數(shù)據(jù)分析Python For循環(huán)教程

時(shí)間:2020-06-01來(lái)源:5wd995.cn點(diǎn)擊量:作者:Sissi
時(shí)間:2020-06-01點(diǎn)擊量:作者:Sissi



  大數(shù)據(jù)分析Python除了循環(huán)遍歷列表之外,for循環(huán)還有很多其他功能,在現(xiàn)實(shí)世界的數(shù)據(jù)科學(xué)工作中,您可能需要將numpy數(shù)組和pandas DataFrames用于其他數(shù)據(jù)結(jié)構(gòu)的循環(huán)。
 

  大數(shù)據(jù)分析Python For循環(huán)教程以如何使用for循環(huán)遍歷列表以外的常見(jiàn)大數(shù)據(jù)分析Python數(shù)據(jù)結(jié)構(gòu)(如元組和字典)開(kāi)始。然后,我們將深入探討與普通的大數(shù)據(jù)分析Python數(shù)據(jù)科學(xué)圖書館像串聯(lián)使用for循環(huán)numpy,pandas和matplotlib。我們還將仔細(xì)研究該range()函數(shù)及其在編寫循環(huán)時(shí)的作用。
 

  快速回顧:大數(shù)據(jù)分析Python For循環(huán)
 

  for循環(huán)是一條編程語(yǔ)句,它告訴大數(shù)據(jù)分析Python遍歷對(duì)象集合,并對(duì)每個(gè)對(duì)象依次執(zhí)行相同的操作。基本語(yǔ)法為:

大數(shù)據(jù)分析Python For循環(huán)
 

  每次大數(shù)據(jù)分析Python遍歷循環(huán)時(shí),變量object都會(huì)采用序列中下一個(gè)對(duì)象的值collection_of_objects,并且大數(shù)據(jù)分析Python將按順序執(zhí)行我們?cè)诿總€(gè)對(duì)象上編寫的代碼collection_of_objects。
 

  現(xiàn)在,讓我們深入研究如何使用具有不同種類的數(shù)據(jù)結(jié)構(gòu)的循環(huán)。我們將跳過(guò)列表,因?yàn)樯弦唤坛桃呀?jīng)介紹過(guò)這些列表。如果您需要進(jìn)一步檢查,請(qǐng)?jiān)诹斜砗脱h(huán)中查看入門教程或Dataquest的交互式任務(wù)。
 

  數(shù)據(jù)結(jié)構(gòu)
 

  元組
 

  元組是序列,就像列表一樣。元組和列表之間的區(qū)別在于元組是不可變的。也就是說(shuō),它們不能更改(了解有關(guān)大數(shù)據(jù)分析Python中可變和不可變對(duì)象的更多信息)。元組還使用括號(hào)代替方括號(hào)。
 

  不管這些差異如何,在元組上循環(huán)與列表非常相似。

大數(shù)據(jù)分析Python For循環(huán)
 

  如果我們有一個(gè)元組列表,則可以通過(guò)將它們都作為變量包含在for循環(huán)中來(lái)訪問(wèn)列表中每個(gè)元組中的各個(gè)元素,如下所示:

大數(shù)據(jù)分析Python For循環(huán)
 

  辭典
 

  除了列表和元組,字典是您在處理數(shù)據(jù)時(shí)可能會(huì)遇到的另一種常見(jiàn)的大數(shù)據(jù)分析Python數(shù)據(jù)類型,并且for循環(huán)也可以遍歷字典。
 

  大數(shù)據(jù)分析Python字典由鍵值對(duì)組成,因此在每個(gè)循環(huán)中,我們需要訪問(wèn)兩個(gè)元素(鍵和值)。與其enumerate()像使用列表那樣使用,不如遍歷兩個(gè)鍵和每個(gè)鍵值對(duì)的對(duì)應(yīng)值,我們需要調(diào)用該.items()方法。
 

  例如,假設(shè)我們有一個(gè)名為“字典”的字典stocks,其中包含股票行情自動(dòng)收錄器和相應(yīng)的股票價(jià)格。我們將使用.items()字典上的方法為每次迭代生成鍵和值:

大數(shù)據(jù)分析Python For循環(huán)
 

  請(qǐng)注意,名稱鍵和值完全是任意的。我們也可以將它們標(biāo)記為k和v或x和y。
 

  弦樂(lè)
 

  如入門教程中所述,for循環(huán)還可以遍歷字符串中的每個(gè)字符??焖倩仡櫼幌拢@是如何工作的:

大數(shù)據(jù)分析Python For循環(huán)
 

  numpy數(shù)組
 

  現(xiàn)在,讓我們看一下常見(jiàn)的大數(shù)據(jù)分析Python數(shù)據(jù)科學(xué)包及其數(shù)據(jù)類型如何使用for循環(huán)。
 

  我們將從研究如何使用numpy數(shù)組循環(huán)開(kāi)始,因此讓我們從創(chuàng)建一些隨機(jī)數(shù)數(shù)組開(kāi)始。

大數(shù)據(jù)分析Python For循環(huán)
 

  在一維numpy數(shù)組上進(jìn)行迭代與在列表上進(jìn)行迭代非常相似:

大數(shù)據(jù)分析Python For循環(huán)
 

  現(xiàn)在,如果我們要遍歷二維數(shù)組怎么辦?如果我們使用與上面相同的語(yǔ)法來(lái)迭代二維數(shù)組,則每次迭代只能迭代整個(gè)數(shù)組。
 

大數(shù)據(jù)分析Python For循環(huán)
 

  二維數(shù)組是由一對(duì)一維數(shù)組構(gòu)成的。要訪問(wèn)每個(gè)元素而不是每個(gè)數(shù)組,我們可以使用numpy函數(shù)nditer(),它是一個(gè)以數(shù)組作為參數(shù)的多維迭代器對(duì)象。
 

  在下面的代碼中,我們將編寫一個(gè)for循環(huán),該循環(huán)將z二維數(shù)組作為參數(shù) 傳遞給每個(gè)元素nditer():

大數(shù)據(jù)分析Python For循環(huán)
 

  如我們所見(jiàn),這首先列出了x中的所有元素,然后列出了y中的所有元素。
 

  記得!當(dāng)遍歷這些不同的數(shù)據(jù)結(jié)構(gòu)時(shí),字典需要一個(gè)方法,numpy數(shù)組需要一個(gè)function。
 

  熊貓數(shù)據(jù)框
 

  當(dāng)我們使用大數(shù)據(jù)分析Python處理數(shù)據(jù)時(shí),我們經(jīng)常使用pandasDataFrames。值得慶幸的是,我們也可以使用for循環(huán)遍歷那些循環(huán)。
 

  讓我們練習(xí)使用一個(gè)小的CSV文件進(jìn)行練習(xí),該文件記錄六個(gè)不同國(guó)家的GDP,首都和人口。我們將在下面將其讀入pandas DataFrame中。
 

  熊貓的工作方式與numpy有所不同,因此我們將無(wú)法簡(jiǎn)單地重復(fù)已經(jīng)學(xué)習(xí)的numpy過(guò)程。如果我們像遍歷一個(gè)numpy數(shù)組一樣嘗試遍歷pandas DataFrame,則只會(huì)打印出列名:

大數(shù)據(jù)分析Python For循環(huán)
 

  相反,我們需要明確提及我們要遍歷DataFrame的行。為此,我們iterrows()在DataFrame上調(diào)用方法,并打印行標(biāo)簽和行數(shù)據(jù),其中一行是整個(gè)熊貓系列。

大數(shù)據(jù)分析Python For循環(huán)
 

  我們還可以從熊貓系列訪問(wèn)特定值。假設(shè)我們只想打印出每個(gè)國(guó)家的首都。我們可以指定僅希望從“ Capital”列中輸出,如下所示:

大數(shù)據(jù)分析Python For循環(huán)
 

  為了使事情比簡(jiǎn)單的打印輸出更進(jìn)一步,讓我們使用for循環(huán)添加一列。讓我們添加“人均GDP”列。請(qǐng)記住,這.loc[]是基于標(biāo)簽的。在下面的代碼中,我們將添加該列并通過(guò)將每個(gè)國(guó)家的總GDP除以其人口并將結(jié)果乘以一萬(wàn)億來(lái)計(jì)算每個(gè)國(guó)家的內(nèi)容(因?yàn)镚DP的數(shù)字以萬(wàn)億為單位)。
 

大數(shù)據(jù)分析Python For循環(huán)
 

  對(duì)于數(shù)據(jù)框中的每一行,我們將創(chuàng)建一個(gè)新標(biāo)簽,并將行數(shù)據(jù)設(shè)置為等于GDP總量除以該國(guó)人口,再乘以$ 1T得出數(shù)千美元。
 

  該range()功能
 

  我們已經(jīng)看到了如何使用for循環(huán)迭代任何序列或數(shù)據(jù)結(jié)構(gòu)。但是,如果我們想以特定順序或特定次數(shù)迭代這些序列,該怎么辦?
 

  這可以通過(guò)大數(shù)據(jù)分析Python的內(nèi)置range()函數(shù)來(lái)完成。根據(jù)傳遞給該函數(shù)的參數(shù)數(shù)量,您可以確定該系列數(shù)字將在哪里開(kāi)始和結(jié)束以及一個(gè)數(shù)字與下一個(gè)數(shù)字之間的差值有多大。請(qǐng)注意,類似于列表,range()函數(shù)的計(jì)數(shù)從0開(kāi)始而不是從1開(kāi)始。
 

  我們可以通過(guò)三種方式致電range():
 

  a.范圍(停止)

  b.范圍(開(kāi)始,停止)

  c.范圍(開(kāi)始,停止,步進(jìn))
 

  range(stop)
 

  range(stop)有一個(gè)參數(shù),當(dāng)我們要迭代從0開(kāi)始的一系列數(shù)字時(shí)使用,并包括直到但不包括我們?cè)O(shè)置為stop的數(shù)字的每個(gè)數(shù)字。

大數(shù)據(jù)分析Python For循環(huán)
 

  range(start, stop)
 

  range(start,stop)有兩個(gè)參數(shù),我們不僅可以設(shè)置序列的結(jié)尾,還可以設(shè)置起點(diǎn)。您可以使用range()使用range(A,B)生成從A到B的一系列數(shù)字。

大數(shù)據(jù)分析Python For循環(huán)
 

  range(start, stop, step)
 

  range(開(kāi)始,停止,步進(jìn))采用三個(gè)參數(shù)。除了最小值和最大值之外,我們還可以設(shè)置序列中一個(gè)數(shù)字與下一個(gè)數(shù)字之間的差。如果未提供,則默認(rèn)步進(jìn)值為1。

大數(shù)據(jù)分析Python For循環(huán)
 

  請(qǐng)注意,這對(duì)于非數(shù)字序列也是如此。
 

  我們還可以使用序列中元素的索引進(jìn)行迭代。關(guān)鍵思想是首先計(jì)算列表的長(zhǎng)度,然后在此長(zhǎng)度范圍內(nèi)迭代序列。讓我們看一個(gè)例子:

大數(shù)據(jù)分析Python For循環(huán)
 

  在上面的for循環(huán)中,我們查看變量的索引和語(yǔ)言,in關(guān)鍵字以及range()創(chuàng)建數(shù)字序列的函數(shù)。請(qǐng)注意,我們也使用len()在這種情況下,函數(shù),因?yàn)榱斜聿皇菙?shù)字。
 

  對(duì)于每次迭代,我們都在執(zhí)行我們的打印語(yǔ)句。因此,對(duì)于len(languages)范圍內(nèi)的每個(gè)索引,我們都希望打印一種語(yǔ)言。因?yàn)槲覀兊恼Z(yǔ)言序列的長(zhǎng)度是6(即計(jì)算得出的len(langauges)值),所以我們可以按以下方式重寫語(yǔ)句:

大數(shù)據(jù)分析Python For循環(huán)
 

  用For循環(huán)繪制
 

  假設(shè)我們要遍歷一個(gè)集合,并使用每個(gè)元素來(lái)生成一個(gè)子圖,甚至是單個(gè)圖中的每個(gè)跡線。例如,讓我們采用流行的虹膜數(shù)據(jù)集(了解有關(guān)此數(shù)據(jù)的更多信息)并使用for循環(huán)進(jìn)行一些繪制。考慮下圖。

大數(shù)據(jù)分析Python For循環(huán)

  上面,我們繪制了每個(gè)萼片長(zhǎng)度與萼片寬度的關(guān)系圖,但是我們可以通過(guò)在每個(gè)數(shù)據(jù)點(diǎn)上按每種花的種類分類給圖賦予更多的含義。一種方法是通過(guò)使用for循環(huán)將每個(gè)點(diǎn)單獨(dú)散布并傳入相應(yīng)的顏色。

大數(shù)據(jù)分析Python For循環(huán)
大數(shù)據(jù)分析Python For循環(huán)
 

  如果我們想可視化虹膜數(shù)據(jù)集某些特征的單變量分布怎么辦?我們可以使用來(lái)執(zhí)行此操作plt.subplot(),它可以在網(wǎng)格內(nèi)創(chuàng)建一個(gè)子圖,可以設(shè)置其列數(shù)和行數(shù)。

大數(shù)據(jù)分析Python For循環(huán)
大數(shù)據(jù)分析Python For循環(huán)
 

  暫時(shí)不深入了解matplotlib語(yǔ)法,以下是對(duì)圖的每個(gè)主要組件的簡(jiǎn)要說(shuō)明:
 

  1)plt.subplot()–用于創(chuàng)建我們的2×2網(wǎng)格并設(shè)置整體大小。

  2)zip()–這是一個(gè)內(nèi)置的大數(shù)據(jù)分析Python函數(shù),使同時(shí)循環(huán)遍歷相同長(zhǎng)度的多個(gè)可迭代對(duì)象變得非常簡(jiǎn)單。

  3)axes.flatten(),其中flatten()是一種numpy數(shù)組方法–這將返回我們數(shù)組(列)的展平版本。

  4)ax.set()–允許我們axes使用一個(gè)方法設(shè)置對(duì)象的所有屬性。
 

  附加操作
 

  嵌套循環(huán)
 

  大數(shù)據(jù)分析Python允許我們?cè)诹硪粋€(gè)循環(huán)中使用一個(gè)循環(huán)。這涉及到一個(gè)外部循環(huán),該循環(huán)在其命令內(nèi)部具有一個(gè)內(nèi)部循環(huán)。
 

  考慮以下結(jié)構(gòu):

大數(shù)據(jù)分析Python For循環(huán)
 

  嵌套的for循環(huán)對(duì)于在由列表組成的列表中的項(xiàng)目之間進(jìn)行迭代很有用。在一個(gè)由列表組成的列表中,如果我們僅使用一個(gè)for循環(huán),則程序會(huì)將每個(gè)內(nèi)部列表作為一項(xiàng)輸出:

大數(shù)據(jù)分析Python For循環(huán)
 

  為了訪問(wèn)內(nèi)部列表的每個(gè)單獨(dú)項(xiàng),我們定義了一個(gè)嵌套的for循環(huán):

大數(shù)據(jù)分析Python For循環(huán)
 

  在上方,外部for循環(huán)遍歷主列表列表(在此示例中包含兩個(gè)列表),內(nèi)部for循環(huán)遍歷各個(gè)列表本身。外循環(huán)執(zhí)行2次迭代(針對(duì)每個(gè)子列表),并且在每次迭代時(shí),我們執(zhí)行內(nèi)循環(huán),打印相應(yīng)子列表的所有元素。
 

  這告訴我們控件從最外層循環(huán)開(kāi)始,遍歷內(nèi)層循環(huán),然后再次返回到外層for循環(huán),一直持續(xù)到控件覆蓋整個(gè)范圍為止,在這種情況下,該范圍是2倍。
 

  繼續(xù)和打破循環(huán)
 

  循環(huán)控制語(yǔ)句從其正常順序更改for循環(huán)的執(zhí)行。
 

  如果我們想在內(nèi)部循環(huán)中濾除特定語(yǔ)言怎么辦?我們可以使用continue語(yǔ)句來(lái)執(zhí)行此操作,這使我們可以在觸發(fā)外部條件時(shí)跳過(guò)循環(huán)的特定部分。

大數(shù)據(jù)分析Python For循環(huán)
 

  在上面的循環(huán)中,在內(nèi)層循環(huán)中,如果語(yǔ)言等于“德語(yǔ)”,我們將僅跳過(guò)該迭代,并繼續(xù)循環(huán)的其余部分。循環(huán)不會(huì)終止。
 

  讓我們看下面的數(shù)字示例:

大數(shù)據(jù)分析Python For循環(huán)
 

  因此,在這里,我們定義了一個(gè)循環(huán),該循環(huán)遍歷所有數(shù)字0到9,并對(duì)每個(gè)數(shù)字求平方。在循環(huán)中,在每次迭代中,我們都在檢查數(shù)字是否可被2整除,這時(shí)循環(huán)將繼續(xù)執(zhí)行,當(dāng)我求出偶數(shù)時(shí),將跳過(guò)該迭代。
 

  怎么樣一個(gè)break語(yǔ)句?這使我們可以在滿足外部條件時(shí)完全退出循環(huán)。讓我們使用與上面相同的示例來(lái)簡(jiǎn)單演示其工作原理:

大數(shù)據(jù)分析Python For循環(huán)
 

  在上面的示例中,我們的if語(yǔ)句提出了以下條件:如果我們的變量i的值等于7,則循環(huán)將中斷,因此我們的循環(huán)將在0到6之間對(duì)整數(shù)進(jìn)行迭代,然后再完全退出循環(huán)。
 

  尋找更多?以下是一些可能有用的其他資源:
 

  1)大數(shù)據(jù)分析Python教程 —我們不斷擴(kuò)展的數(shù)據(jù)科學(xué)大數(shù)據(jù)分析Python教程列表。

  2)數(shù)據(jù)科學(xué)課程 -直接在瀏覽器中通過(guò)完全交互式的編程,數(shù)據(jù)科學(xué)和統(tǒng)計(jì)課程將您的學(xué)習(xí)提升到一個(gè)新的水平。

  結(jié)論
 

  在大數(shù)據(jù)分析Python For循環(huán)教程中,我們了解了for循環(huán)的一些更高級(jí)的應(yīng)用程序,以及如何在典型的大數(shù)據(jù)分析Python數(shù)據(jù)科學(xué)工作流中使用它們。
 

  我們學(xué)習(xí)了如何迭代不同類型的數(shù)據(jù)結(jié)構(gòu),以及如何將循環(huán)與pandas DataFrames和matplotlib一起使用以編程方式創(chuàng)建多個(gè)跟蹤或子圖。
 

  最后,我們研究了一些更高級(jí)的技術(shù),這些技術(shù)使我們可以更好地控制for循環(huán)的操作和執(zhí)行。

 

預(yù)約申請(qǐng)免費(fèi)試聽(tīng)課

填寫下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽(tīng)!怕錢不夠?可先就業(yè)掙錢后再付學(xué)費(fèi)! 怕學(xué)不會(huì)?助教全程陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可推薦就業(yè)!

?2007-2021/北京漫動(dòng)者教育科技有限公司版權(quán)所有
備案號(hào):京ICP備12034770號(hào)

?2007-2022/ 5wd995.cn 北京漫動(dòng)者數(shù)字科技有限公司 備案號(hào): 京ICP備12034770號(hào) 監(jiān)督電話:010-53672995 郵箱:bjaaa@aaaedu.cc

京公網(wǎng)安備 11010802035704號(hào)

網(wǎng)站地圖