[轉載] 大數據分析Python For循環教程

參考鏈接: Python中的迭代器函數1

大數據分析Python除了循環遍歷列表之外,for循環還有很多其他功能,在現實世界的數據科學工作中,您可能需要將numpy數組和pandas DataFrames用于其他數據結構的循環。?

  大數據分析Python For循環教程以如何使用for循環遍歷列表以外的常見大數據分析Python數據結構(如元組和字典)開始。然后,我們將深入探討與普通的大數據分析Python數據科學圖書館像串聯使用for循環numpy,pandas和matplotlib。我們還將仔細研究該range()函數及其在編寫循環時的作用。?

  快速回顧:大數據分析Python For循環?

  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,首都和人口。我們將在下面將其讀入pandas DataFrame中。?

  熊貓的工作方式與numpy有所不同,因此我們將無法簡單地重復已經學習的numpy過程。如果我們像遍歷一個numpy數組一樣嘗試遍歷pandas DataFrame,則只會打印出列名:?

  ?

?

??

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

  ?

?

??

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

  ?

?

??

  為了使事情比簡單的打印輸出更進一步,讓我們使用for循環添加一列。讓我們添加“人均GDP”列。請記住,這.loc[]是基于標簽的。在下面的代碼中,我們將添加該列并通過將每個國家的總GDP除以其人口并將結果乘以一萬億來計算每個國家的內容(因為GDP的數字以萬億為單位)。?

  ?

?

??

  對于數據框中的每一行,我們將創建一個新標簽,并將行數據設置為等于GDP總量除以該國人口,再乘以$ 1T得出數千美元。?

  該range()功能?

  我們已經看到了如何使用for循環迭代任何序列或數據結構。但是,如果我們想以特定順序或特定次數迭代這些序列,該怎么辦??

  這可以通過大數據分析Python的內置range()函數來完成。根據傳遞給該函數的參數數量,您可以確定該系列數字將在哪里開始和結束以及一個數字與下一個數字之間的差值有多大。請注意,類似于列表,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)數據科學課程 -直接在瀏覽器中通過完全交互式的編程,數據科學和統計課程將您的學習提升到一個新的水平。?

  結論?

  在大數據分析Python For循環教程中,我們了解了for循環的一些更高級的應用程序,以及如何在典型的大數據分析Python數據科學工作流中使用它們。?

  我們學習了如何迭代不同類型的數據結構,以及如何將循環與pandas DataFrames和matplotlib一起使用以編程方式創建多個跟蹤或子圖。?

  最后,我們研究了一些更高級的技術,這些技術使我們可以更好地控制for循環的操作和執行。?

??

摘自:https://www.aaa-cg.com.cn/data/2311.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/540478.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/540478.shtml
英文地址,請注明出處:http://en.pswp.cn/news/540478.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

node.js 爬蟲入門總結

node.js爬蟲 前端同學可能向來對爬蟲不是很感冒,覺得爬蟲需要用偏后端的語言,諸如 php , python 等。當然這是在 nodejs 前了,nodejs 的出現,使得 Javascript 也可以用來寫爬蟲了。由于 nodejs 強大的異步特性&#xf…

數組重復次數最多的元素遞歸_使用遞歸計算鏈接列表中元素的出現次數

數組重復次數最多的元素遞歸Solution: 解: Required function: 所需功能: func_occurence ( node *temp) //recursive functionInput: 輸入: A singly linked list whose address of the first node is stored in a pointer, say head and…

SecureCRT中文亂碼解決方法

服務端export LANGzh_CN.UTF-8客戶端SecureCRT編碼選擇UTF-8客戶端SecureCRT字體選擇新宋體,字符集選擇中文總結:客戶端和服務端字符編碼一致,客戶端字體字符集支持轉載于:https://blog.51cto.com/leomars/1972669

[轉載] Python 迭代器 深入理解 與應用示例

參考鏈接: Python | 可迭代和迭代器之間的區別 本篇文章簡單談談可迭代對象,迭代器和生成器之間的關系。 三者簡要關系圖 可迭代對象與迭代器 剛開始我認為這兩者是等同的,但后來發現并不是這樣;下面直接拋出結論: 1…

Python程序查找表示O(1)復雜度的數字所需的位數

Problem statement 問題陳述 Find total Number of bits required to represent a number in binary 查找以二進制表示數字所需的總位數 Example 1: 范例1: input : 10output: 4Example 2: 范例2: input : 32output : 6Formula used: 使用的公式&am…

正則split

string content "第1行導入失敗,失敗原因為: 《加班原因》字段必填";string[] resultString Regex.Split(content, "失敗原因為:", RegexOptions.IgnoreCase);foreach (string i in resultString){Console.WriteLine(i…

將八進制數制轉換為二進制,十進制和十六進制數制

1)將八進制數制轉換為二進制數制 (1) Conversion of Octal Number System to Binary Number System) To convert octal numbers into binary numbers, we can use the relationship between octal and binary numbers. 要將八進制數轉換為二進制數,我們可以使用八進…

[轉載] Python的生成器

參考鏈接: Python中的生成器Generator Python的生成器 什么是生成器 創建python迭代器的過程雖然強大,但是很多時候使用不方便。生成器是一個簡單的方式來完成迭代。簡單來說,Python的生成器是一個返回可以迭代對象的函數。 怎樣創建生…

想提高用戶訪問的響應速度和成功率還不趕快學習CDN

2019獨角獸企業重金招聘Python工程師標準>>> 課程介紹 CDN可以將源站內容分發至最接近用戶的節點,使用戶可就近取得所需內容,提高用戶訪問的響應速度和成功率。解決因分布、帶寬、服務器性能帶來的訪問延遲問題,適用于站點加速、點…

[轉載] python迭代器、生成器和裝飾器

參考鏈接: 有效地在Python中使用迭代 文章目錄 生成器生成器表達式(generator expression)通過使用yield關鍵字定義生成器并行前戲高潮 迭代器迭代器概述iter()函數 創建迭代器創建一個迭代器(類)內置迭代器工具count無限迭代器cycle 無限迭代器,從一個…

java中的starts_Java Math類靜態double nextAfter(double starts,double direction)示例

java中的starts數學類靜態double nextAfter(雙向啟動,雙向) (Math Class static double nextAfter(double starts , double directions) ) This method is available in java.lang package. 此方法在java.lang包中可用。 This method is used to return the double …

Python 核心編程(第二版)——條件和循環

Python 中的 if 子句由三部分組成: 關鍵字本身,用于判斷結果真假的條件表達式, 以及當表達式為真或者非零時執行的代碼塊。if 語句的語法如下: if expression: expr_true_suite 單個 if 語句可以通過使用布爾操作符 and , or 和 not實現多重判斷條件或…

[轉載] 【python魔術方法】迭代器(__iter__和__next__)

參考鏈接: Python __iter __()和__next __()| 將對象轉換為迭代器 文章目錄 __iter__ 和 __next__真正的迭代器總結 python里面有很多的以__開始和結尾的函數,利用它們可以完成很多復雜的邏輯代碼,而且提高了代碼的簡潔性,本文主…

Silverlight 異步單元測試

Silverlight 中的很多操作都是異步的,很多情況下要求單元測試也是異步的,但是介紹異步單元測試的文檔很少。通過對 Silverlight Toolkit 中的 Microsoft.Silverlight.Testing 和 Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight 這兩個文件…

網絡拓撲 令牌環網 以太網_以太網連接中網絡拓撲的類型及其框架 以太網技術...

網絡拓撲 令牌環網 以太網A topology explains how physically the network is designed or what is the structure of the network. These designs are both physical and logical. There are many network topologies 4 like Bus, Star, Ring, and Mesh. But only two types …

Wafer晶圓封裝工藝介紹

芯片封裝的目的(The purpose of chip packaging): 芯片上的IC管芯被切割以進行管芯間連接,通過引線鍵合連接外部引腳,然后進行成型,以保護電子封裝器件免受環境污染(水分、溫度、污染物等)&…

[轉載] Python中的解析式和生成器表達式

參考鏈接: Python | 生成器表達式 解析式和生成器表達式 列表解析List Comprehension 語法 [返回值 for 元素 in 可迭代對象 if 條件]使用中括號[],內部是for循環,if條件語句可選,會返回一個新的列表 列表解析試優點 編譯器會優化&…

java 數字字母進位_使用帶有進位的8085微處理器將兩個8位數字相乘

java 數字字母進位Problem statement: 問題陳述: Multiplication of two 8 bits numbers using 8085 microprocessor with carry. 使用帶有進位的8085微處理器將兩個8位數字相乘。 Algorithm: 算法: Load HL pair with initial data using LHLD comma…

[轉載] Python3.0中普通方法、類方法和靜態方法的比較

參考鏈接: Python中的類方法與靜態方法 一、語法區別 剛接觸Python中的面向對象,對于類方法和靜態方法難以區分,通過查找知乎、CSDN論壇,廢了好大的勁思路才逐漸明朗,所以就總結順便分享一下。 首先開始編輯代碼 # 普…

iOS:個人淺談工廠模式

一、什么是工廠方法? 正式的解釋是:在基類中定義創建對象的一個接口,讓子類決定實例化哪個類。工廠方法讓一個類的實例化延遲到子類中進行。工廠方法要解決的問題是對象的創建時機,它提供了一種擴展的策略,很好地符合了…