Python大規模機器學習》—1.1.3使用Python進行向上擴展">《Python大規模機器學習》—1.1.3使用Python進行向上擴展
732
2025-04-01
2.2.3使用pandas I/O工具
我們可以使用pandas的read_csv函數替代csv模塊。該函數專門用于上傳CSV文件,pandas有大量支持多種文件格式的I/O函數,這是其中之一。相關文檔資料請查看http://pandas.pydata.org/pandas-docs/stable/io.html。
使用pandas的I/O函數的優點如下:
如果更改源代碼類型,能保持代碼一致性,也就是說,只需要重新定義流迭代器。
支持多種格式,如CSV、普通TXT、HDF、JSON和對特定數據庫的SQL查詢等。
數據以DataFrame數據結構的形式流入所需大小的數據塊,以便以位置方式或通過調用其標簽來訪問這些特征,這要用到.loc、.iloc、.ix等典型的pandas數據切割方法。
下面的示例仍然使用與之前相同的方法,但使用pandas的read_csv函數建立流數據:
這里需要注意的是,迭代器是通過指定塊大小來實例化的,也就是說,迭代器在每次迭代時必須返回行數。chunksize參數假設值的范圍是從1到任何值,但很明顯,小批量處理(檢索到的塊)的大小與可用內存緊密相連,以便在后續預處理階段中存儲和操作它。
將較大數據塊調入內存具有的優勢僅僅體現在磁盤訪問上。根據物理存儲特性,較小數據塊需要對磁盤進行多次訪問,這會花費更長時間來傳遞數據。然而,從機器學習角度來看,較小或較大的塊對Scikit中的非核心學習函數幾乎沒有影響,因為它們每次只學習一個實例,從而使得它們在計算成本上呈現真正的線性化。
TensorFlow python 機器學習
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。