回覆列表
  • 1 # 52sissi

      迴圈是任何程式語言的組成部分。在大資料分析Python中,迴圈的重要組成部分是內建range函式。

      就本教程而言,我們假定您至少了解一些大資料分析Python語法。如果您以前從未使用過大資料分析Python,建議您先從此互動式大資料分析Python基礎知識課程開始。

      大資料分析Python範圍簡史

      本教程的重點是大資料分析Python 3,但是如果您在使用大資料分析Python 2之前已經進行過一些解釋,因為range這兩個版本之間的含義有所變化。

      range大資料分析Python 2中 的函式生成了一個可以迭代的數字列表。因此,對於大列表大小,此過程佔用了大量記憶體。xrange大資料分析Python 2中的函式透過惰性求值返回專案,這意味著僅在需要時才生成數字,從而使用更少的記憶體。

      xrange大資料分析Python 2中 的函式range在大資料分析Python 3 中重新命名,而range大資料分析Python 2中的函式已棄用。在本教程中,我們正在使用range大資料分析Python 3 的功能,因此它在與range大資料分析Python 2 相關時不會出現效能問題。

    大資料分析Python範圍:基本用途

      讓我們首先來看一下for迴圈和range大資料分析Python中函式的基本用法。讓我們列印前五個整數。

      我們可以使用三個引數range:開始,停止和步進。我們可以如下說明這三個:

      1)range(stop):這會建立一個範圍從零到小於終止號的數字範圍,並增加一個。

      2)範圍(開始,停止):這會建立一個範圍從開始編號到小於結束編號的數字範圍,並增加一個。

      3)範圍(開始,停止,步進):這會建立一個範圍從開始編號到小於停止編號的數字,並逐步遞增。

      上面的簡單示例使用了宣告range函式的第一種方式。讓我們探索另外兩種方式。

      請注意,起始編號包含在範圍內,而終止編號不包含在範圍內。

      在這種第三種宣告方式中range,我們從起始編號開始,然後加三(步驟編號),直到達到終止編號。

      範圍:資料型別

      讓我們檢查range函式返回的物件的型別。

      請注意,這range是大資料分析Python中的一種型別。該類的預設列印方法將列印範圍物件將迭代透過的數字範圍。請注意,仍未生成數字-這是由於前面提到的節省記憶體的“惰性評估”。僅當數字以某種方式實際使用時才會生成數字(例如,如上所述,在print函式中被呼叫)。

    範圍物件:高階用途

      有趣的是,我們可以透過範圍物件的索引訪問範圍物件,就像使用列表一樣。我們範圍內的第三個物件是2。

      像列表一樣,我們也可以切片範圍物件。這將返回一個新的範圍物件!

      我們也可以使用reversed()適用於列表的相同功能來反轉範圍物件。

      範圍可用於生成負數。

      我們還可以定義一個負階躍函式來按遞減順序生成數字,而不是使用該reversed函式。

      請注意,如果您使用帶有的step引數range,則該引數不能為零(這將導致無限迴圈並因此引發ValueError)。

      此外,如果從您的開始引數開始計數永遠不會到達您的結束引數,range則不會返回任何內容。請注意,當我們執行下面的程式碼時,不會列印任何內容,因為如果我們從17開始並遞增計數,則永遠無法達到指定的end引數10:

    帶浮點數的範圍物件

      範圍功能不適用於浮點數。只能將整數值指定為開始,停止和步驟引數。

      但是,如果需要使用浮點數生成類似範圍的收益,則有兩種解決方法。

      首先,我們可以定義一個具有三個引數的簡單函式,該函式逐步增加起始編號,直a到達到停止為止:

      我們也可以使用NumPy從NumPy的arange()函式中獲得相同的結果。

      這個數字0.30000000000000004是哪裡來的?系統僅儲存浮點數的近似值。因此,如果要生成更清晰的輸出,則在處理像這樣的浮點數時可能需要使用該round()函式。

    在資料科學中使用大資料分析Python的範圍函式

      讀取大檔案

      在資料科學中,大資料分析Python的range函式的一種用途是在讀取大型檔案時。

      例如,考慮一下 UCI提供的1985年的汽車進口資料集。該檔案為CSV格式,其中值之間用逗號分隔。下載檔案並使用open()功能開啟它。讓我們使用該.readline()方法列印前五行。

      在標頭檔案描述列名。最後一列包含汽車進口價格。如果我們瀏覽檔案的前幾行,則會注意到丟失的專案儲存為問號(?)。

      每條列印行之間以換行符(\n)結尾的行之間有一個空行。我們將需要在下面的分析中考慮這一點。讓我們檢查檔案中存在多少行。在UNIX終端中,可以將命令wc -l以檔名作為引數來計算行數。如果使用的是Jupyter筆記本,則可以在命令前使用感嘆號,以從單元格中執行終端命令。

      利用205行資料,讓我們嘗試在資料集中查找價格最高的汽車進口和汽車的行號。首先,我們將迴圈遍歷檔案長度。接下來,使用.readline()方法讀取該行,在每行末尾去除換行符,然後使用split()函式將該行轉換為專案列表。

      清單的最後一項是汽車進口價格。如果價格缺失,我們將遍歷下一個專案。如果價格高於我們的價格max_price,則我們更改的值max_price並更新儲存在變數中的行號max_price_loc。

      1985年最昂貴的汽車售價為45400美元,按通脹率計算的2019年美元匯率約為108000美元。

      Web爬網時遍歷頁面

      範圍函式在資料科學中的另一個用途是從某些網站進行Web抓取。

      例如,假設我們要從BBS論壇中提取資料。通常,帖子分佈在大量頁面上,而頁面編號包含在URL中。大資料分析Python內建函式range使用教程https://www.aaa-cg.com.cn/data/2297.html無需一次輸入每個頁面URL,我們可以一次輸入URL並透過用range函式產生的每個數字替換URL中的頁面號來遍歷每個頁面。

      例如,如果我們要向URL格式為的頁面傳送請求http://www.website.com/?p=page_number,則可以使用range依次生成每個URL。在下面的示例中,我們獲得了前十個頁面的URL,但是可以使用此技術快速生成成百上千個URL,然後您就可以逐個抓取內容,而不必在您的網站中放置多個URL碼。

      在大資料分析Python內建函式range使用教程中,我們學習了使用該range()函式的一些不同方式,並看到了一些有關如何在資料科學工作中特別有用的示例。

      如果您使用資料,range()不一定每天都會使用該功能,但是在某些情況下,一定要牢牢掌握其工作方式可以節省大量時間和精力。

    https://www.toutiao.com/i6828742146447639052/

  • 中秋節和大豐收的關聯?
  • 凱美瑞怠速抖動的原因呢?