中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
如何利用 Python 讀取數(shù)據(jù)科學中常見幾種文件?

前 言

如果你是數(shù)據(jù)行業(yè)的一份子,那么你肯定會知道和不同的數(shù)據(jù)類型打交道是件多么麻煩的事。不同數(shù)據(jù)格式、不同壓縮算法、不同系統(tǒng)下的不同解析方法——很快就會讓你感到抓狂!噢!我還沒提那些非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)呢。

對于所有數(shù)據(jù)科學家和數(shù)據(jù)工程師來說,和不同的格式打交道都乏味透頂!但現(xiàn)實情況是,人們很少能得到整齊的列表數(shù)據(jù)。因此,熟悉不同的文件格式、了解處理它們時會遇到的困難以及處理某類數(shù)據(jù)時的最佳/最高效的方法,對于任何一個數(shù)據(jù)科學家(或者數(shù)據(jù)工程師)而言都必不可少。

在本篇文章中,你會了解到數(shù)據(jù)科學家或數(shù)據(jù)工程師必須知道的幾種常規(guī)格式。我會先向你介紹數(shù)據(jù)行業(yè)里常用的幾種不同的文件格式。隨后,我會向大家介紹如何在 Python 里讀取這些文件格式。

PS:在后文中提到的數(shù)據(jù)科學家,同樣也包括數(shù)據(jù)工程師以及所有的數(shù)據(jù)科學專家。

目 錄

  1. 文件格式是什么。

  2. 數(shù)據(jù)科學家應當了解各種不同文件格式的原因。

  3. 不同的文件格式以及從 Python 中讀取這些文件的方法。

1. 逗號分隔值

2. XLSX

3. ZIP

4. 純文本(txt)

5. JSON

6. XML

7. HTML

8. 圖像

9. 分層數(shù)據(jù)格式

10. PDF

11. DOCX

12. MP3

13. MP4

1. 文件格式是什么。

文件格式是計算機為了存儲信息而使用的對信息的特殊編碼方式。首先,文件格式代表著文件的類型,如二進制文件或者 ASCII 文件等。其次,它體現(xiàn)了信息組織的方式。比如,逗號分隔值(CSV)文件格式用純文本來儲存列表數(shù)據(jù)。

為了識別一個文件的格式,你通常會去看這個文件的擴展名。比如,一個以“CSV”格式保存的名為“Data”的文件下方的文件名會顯示為“Data.csv”。看到“.csv”這個擴展名,我們就會清楚地知道這是一個“CSV”文件,并且還可以知道其中的數(shù)據(jù)是以表格的形式儲存的。

2. 數(shù)據(jù)科學家應當了解各種不同文件格式的原因。

通常,你碰到的文件類型取決于你當下構(gòu)造的應用。舉個例子,在一個圖像處理系統(tǒng)中,你需要把圖像作為輸入和輸出。所以,你所見到的文件大都是jpeg、gif 或者 png 格式的。

作為一個數(shù)據(jù)科學家,你需要了解各種文件格式的底層結(jié)構(gòu)以及相應的優(yōu)勢和劣勢。只有了解了數(shù)據(jù)的底層結(jié)構(gòu),你才能夠進一步去探索它,或者決定如何來儲存相關的數(shù)據(jù)。

選擇一個最理想的文件格式來儲存數(shù)據(jù)能夠提升你的模型在處理數(shù)據(jù)時的性能。

現(xiàn)在,讓我們討論一下下方這些文件格式以及如何在 Python 中讀取它們:

  • 逗號分隔值(CSV)

  • XLSX

  • ZIP

  • 純文本(txt)

  • JSON

  • XML

  • HTML

  • 圖像

  • 分層數(shù)據(jù)格式

  • PDF

  • DOCX

  • MP3

  • MP4

3. 不同的文件格式以及從 Python 中讀取這些文件的方法。

3.1 逗號分隔值

逗號分隔值文件格式屬于電子表格文件格式的一種。

什么是電子表格文件格式?

在電子表格文件格式中,數(shù)據(jù)被儲存在單元格里。每個單元格都處于特定的行和列中。電子表格文件中的列擁有不同的類型。比如說,它可以是字符串型的、日期型的或者整數(shù)型的。最常用的電子表格文件格式包括:逗號分隔值(CSV)、Microsoft Excel 電子表格(xls)以及 Microsoft Excel Open XML 電子表格(xlsx)。

CSV 文件中的每一行都代表一份觀察報告,或者也可以說是一條記錄。每一個記錄都包含一個或者更多由逗號分隔的字段。

有時你看你會遇到用制表符而非逗號來分隔字段的文件。這種文件格式被稱為 TSV(制表符分隔值)文件格式。

下面是一個用 Notepad 打開的 CSV 文件。

在 Python 中從 CSV 文件里讀取數(shù)據(jù)

現(xiàn)在讓我們看看如何在 Python 中讀取一個 CSV 文件。你可以用 Python 中的“pandas”庫來加載數(shù)據(jù)。

import pandas as pd

df = pd.read_csv(“/home/Loan_Prediction/train.csv”)

上方的代碼將會把 train.csv 文件加載進 DataFrame df 中。

3.2 XLSX文件

XLSX 是 Microsoft Excel Open XML 的文件格式,它同樣可以歸入電子表格文件格式這一類中。它是由 Microsoft Excel 開發(fā)的一種基于 XML 文件格式。Microsoft Office 2007 最先采用 XLSX 格式來儲存數(shù)據(jù)。

在 XLSX 中,數(shù)據(jù)被放在工作表的單元格和列當中。每個 XLSX 文件可能包含一個或者更多工作表,所以一個工作簿中可能會包含多個工作表。

下面是一個在 Microsoft Excel 中打開的“xlsx”文件。

上圖顯示的這個文件里包含多個工作表,這些工作表的名稱分別為 Customers、Employees、Invoice 和 Order。圖片中顯示的是其中一個工作表——“Invoice”——中的數(shù)據(jù)。

從 XLSX 文件讀取數(shù)據(jù)

讓我們一起來加載一下來自 XLSX 文件的數(shù)據(jù)并且定義一下相關工作表的名稱。此時,你可以用 Python 中的“pandas”庫來加載這些數(shù)據(jù)。

import pandas as pd

df = pd.read_excel(“/home/Loan_Prediction/train.xlsx”,sheetname = “Invoice”)

上方的代碼將會把來自“train.xlsx”文件的工作表“Invoice”加載進 DataFrame df 中。

3.3 ZIP 文件

ZIP 格式是一種歸檔文件格式。

什么是歸檔文件格式?

在歸檔文件格式中,你可以創(chuàng)建一個包含多個文件和元數(shù)據(jù)的文件。歸檔文件格式通常用于將多個數(shù)據(jù)文件放入一個文件中的過程。這么做是為了方便對這些文件進行壓縮從而減少儲存它們所需的存儲空間。

有很多種常用的電腦數(shù)據(jù)歸檔格式可以創(chuàng)建歸檔文件。Zip、RAR 和 Tar 是最常用的3種用于壓縮數(shù)據(jù)的歸檔文件格式。

因此,ZIP 文件格式是一種無損壓縮格式,這意味著如果你用 ZIP 格式壓縮了多個文件,那么在解壓縮之后你能夠完全恢復這些數(shù)據(jù)。ZIP 文件格式使用多種壓縮算法來壓縮文件。你可以通過 .zip 這個擴展名輕易地識別出一個 ZIP 文件。

在 Python 中讀取 .ZIP 文件

你可以通過導入“zipfile”包來讀取 zip 文件。下方的代碼可以實現(xiàn)讀取“T.zip”中的“train.csv”文件。

import zipfile

在這里我已經(jīng)討論了其中一種最常用的歸檔格式,也已經(jīng)討論了如何在 python 中打開這種歸檔格式。我不會再對其他的歸檔格式進行展開討論。如果你想了解不同類型的歸檔格式并且想對其做出比較,可以點開這個鏈接:https://en.wikipedia.org/wiki/Comparison_of_archive_formats。

3.4 純文本(txt)文件格式

在純文本文件格式中,所有的內(nèi)容都是純文本。通常,這個文本的形式是非結(jié)構(gòu)的,而且也沒有與元數(shù)據(jù)關聯(lián)。txt 文件格式可以被任何程序讀取。但是如果想通過計算機程序來解析它,并不是件容易的事。

讓我們以一個文本文件為例。

下面是一段包含了文本的文本文件數(shù)據(jù):

“In my previous article, I introduced you to the basics of Apache Spark, different data representations

假設上面的文本來自一個名叫 text.txt 的文件,如果你想要讀取它,那么可以參考下方的代碼。

text_file = open('text.txt', 'r')

3.5 JSON 文件格式

JavaScript 對象表示法(JSON)是一個基于文本的開放式標準,通常用于在網(wǎng)絡上交換數(shù)據(jù)。JSON 格式被用來在網(wǎng)絡上傳輸結(jié)構(gòu)化數(shù)據(jù)。JSON 文件格式可以被任何編程語言輕易讀取,因為它是一種獨立于語言的數(shù)據(jù)格式。

請看下面某個 JSON 文件的樣例。

下面我們看到的是一個典型的 JSON 文件儲存員工信息的過程。

{

讀取 JSON 文件

讓我們加載來自 JSON 文件的數(shù)據(jù)。你可以使用 Python 中的“pandas”庫來加載數(shù)據(jù)。

import pandas as pd

df =pd.read_json(“/home/kunal/Downloads/Loan_Prediction/train.json”)

3.6 XML 文件格式

XML 同樣被稱為可擴展標記語言。從名字中我們可以看出,它是一種標記語言,在編碼數(shù)據(jù)時需要遵循某些規(guī)則。XML 文件格式是一種既人類可讀又機器可讀的文件格式。XML 通常用于網(wǎng)絡上發(fā)送信息的自描述語言。XML 和 HTML 非常類似,但是它們之間也存在某些區(qū)別。比如,XML 并不像 HTML 那樣使用預定義表情。

”是一個 XML 聲明,它會出現(xiàn)在文件開始處(位置可以改變)。在這個聲明中,version 指明了 XML 的版本,encoding 指明了文檔中使用的字符編碼。 是該文檔中的一個標簽。所有 XML 標簽都需要被關閉。

在 python 中讀取 XML

你可以導入 xml.etree. ElementTree 庫來讀去 XML 文檔中的數(shù)據(jù)。

讓我們導入一個名叫 train 的 xml 文件,然后打印它的根標簽。

import xml.etree.ElementTree as ET

3.7 HTML 文件

HTML 的全稱是超文本標記語言。它是一種用于創(chuàng)建網(wǎng)頁的標準通用標記語言。HTML 通過標記來描述網(wǎng)頁的結(jié)構(gòu)。HTML 的標簽和 XML 的相同,但是它們已經(jīng)被預定義過。根據(jù)標簽你能夠輕易地識別出 HTML 文件的分段,比如說代表 HTML 文件的頭部,

代表段落。HTML 不區(qū)分大小寫。

下面是一個 HTML 文檔。

HTML 的每一個標簽都需要放在尖括號(<>)里。 定義文檔使用的是 HTML 格式。 是這個文檔的根標簽。 指的是這個文檔的頭部分。、<body>、<h1>、<p> 分別代表 HTML 文件中的標題、內(nèi)容、頭部和段落。</p><p><strong>讀取 HTML 文件</strong></p><p>為了讀取 HTML 文件,你可以使用 BeautifulSoup 庫。請參考教程 Beginner’s guide to Web Scraping in Python using BeautifulSoup:</p><p>https://www.analyticsvidhya.com/blog/2015/10/beginner-guide-web-scraping-beautiful-soup-python/,它會告訴你如何解析 HTML 文件。</p><p><strong>3.8 圖像文件</strong></p><p>在數(shù)據(jù)科學所能用到的所有文件格式中,圖像文件也許是最讓人著迷的那一個。任何計算機視覺應用都是圖像處理為基礎的。所以,了解不同的圖像文件格式是非常有必要的。</p><p>圖像文件通常都是3維的,它們擁有 RGB 值。但是它們也可以是2維(灰度圖像),甚至是4維(擁有強度)的——由像素組成并且關聯(lián)了元數(shù)據(jù)的圖片。</p><p>每張圖片都是由一個或者多個像素幀組成的。每一幀都由像素值的2維陣列組成。像素值可以具有任何強度。和一張圖片關聯(lián)的元數(shù)據(jù)可以是圖像類型(.png)的,也可以是像素類型的。</p><p>讓我們試著加載一張圖片。</p><div>from scipy import misc</div><div><p><div id="fbwnfa5u" class='imgcenter'><img id="img3" src="https://p.pstatp.com/large/19230000a29aac6c32a4" /></div></p></div><p>現(xiàn)在,讓我們確認一下這個圖片的類型和形狀。</p><div>type(f) , f.shape</div><div>numpy.ndarray,(768, 1024, 3)</div><p>如果你想閱讀關于圖像處理的內(nèi)容,你可以參考文章 Basics of Image Processing in Python:https://www.analyticsvidhya.com/blog/2014/12/image-processing-python-basics/。它會用實例來教會你如何處理圖像。</p><p><strong>3.9 分層數(shù)據(jù)格式(HDF)</strong></p><p>在分層數(shù)據(jù)格式(HDF)中,你可以輕易地儲存大量的數(shù)據(jù)。它不僅可以儲存高容量或者復雜的數(shù)據(jù),同樣也可以儲存小容量或者簡單的數(shù)據(jù)。</p><p>使用 HDF 的優(yōu)勢如下:</p><ul><li><p>它可以在任何大小和類型的系統(tǒng)中使用。</p></li><li><p>它的儲存更加靈活高效, I/O 速度快。</p></li><li><p>很多格式都支持 HDF。</p></li></ul><p>現(xiàn)在我們能夠見到很多種 HDF 格式。但是,最新版的 HDF5 能夠突破過去的 HDF 文件格式所受的某些限制。HDF5 格式和 XML 具有一定的相似之處。和 XML 一樣,HDF5 文件也具有自定義功能,它允許用戶規(guī)定復雜的數(shù)據(jù)關系和依賴關系。</p><p>讓我們以一個 HDF5 文件格式為例進行做簡單的講解。</p><div><p><div id="fbwnfa5u" class='imgcenter'><img id="img4" src="https://p.pstatp.com/large/191d00027576b6cb6338" /></div></p></div><p><strong>讀取 HDF5 文件</strong></p><p>你可以使用 pandas 來讀取 HDF 文件。下面的代碼可以將 train.h5 的數(shù)據(jù)加載到“t”中。</p><p>t = pd.read_hdf(‘train.h5’)</p><p><strong>3.10 PDF 文件格式</strong></p><p>PDF(便攜式文件格式)是一種非常好用的格式,它能夠解析并顯示與圖片結(jié)合在一起的文本。PDF 文件的一個特色就是它可以設置密碼來保護文件。</p><p>下面是一個 pdf 文件。</p><div><p><div id="fbwnfa5u" class='imgcenter'><img doc360img-src='https://p.pstatp.com/large/19220000aed7dbc683d9' id="img5" src="http://pubimage.360doc.com/wz/default.gif" /></div></p></div><p><strong>讀取 PDF 文件</strong></p><p>利用程序來讀取 PDF 格式是一個非常復雜的工作。但是目前已經(jīng)存在一些能夠很好的解析 PDF 文件的庫,其中就包括 PDFMiner。想要通過 PDFMiner 來讀取 PDF 文件,你需要:</p><ul><li><p>從網(wǎng)上下載 PDFMiner 并進行安裝</p></li><li><p>用如下代碼提取 PDF 文件</p></li></ul><div>pdf2txt.py <pdf_file>.pdf</pdf_file></div><p><strong>3.11 DOCX 文件格式</strong></p><p>Microsoft word docx 文件是另一種常用的記錄文本數(shù)據(jù)的文件格式。它具有眾多特性,比如可以嵌入表格、圖片、超鏈接等等。這使得 docx 成為一種極其重要的文件格式。</p><p>比起 PDF 文件,docx 文件的優(yōu)勢在于可以進行編輯,你可以把一個 docx 文件轉(zhuǎn)換成其他格式的文件。</p><p>下面是一個 docx 文件:</p><div><p><div id="fbwnfa5u" class='imgcenter'><img doc360img-src='https://p.pstatp.com/large/192700009aa69e369a61' id="img6" src="http://pubimage.360doc.com/wz/default.gif" /></div></p></div><p><strong>讀取 docx 文件</strong></p><p>和 PDF 格式類似,python 也擁有一個解析 docx 文件的庫。它叫做 python-docx2txt。</p><p>通過 pip,很容易就能安裝此庫,輸入:</p><div>pip install docx2txt</div><p>為了在 Python 中讀取 docx 文件,輸入以下代碼:</p><div>import docx2txt</div><p><strong>3.12 MP3 文件格式</strong></p><p>MP3 文件格式屬于多媒體文件格式。多媒體文件格式和圖像文件格式比較相似,但是 MP3 文件格式是文件格式中最為復雜的類型。</p><p>在多媒體文件格式中,你可以儲存多種數(shù)據(jù),比如文字圖片、圖形圖片、視頻和音頻數(shù)據(jù)。其中,多媒體格式可以把文本儲存為 RTF 格式的數(shù)據(jù)而不是純文本格式中的 ASCII 數(shù)據(jù)。</p><p>MP3 是最常用的音頻編碼格式。mp3 文件格式使用 MPEG-1 編碼格式,它是視頻、音頻有損壓縮的標準格式。在有損壓縮中,一旦你對原始文件進行了壓縮,你就不可能再恢復原始的數(shù)據(jù)了。</p><p>mp3 文件格式通過濾掉人耳不能聽到的聲音來對音頻進行壓縮。原始文件經(jīng)過MP3 壓縮后其大小一般會減少75%到95%,因此能夠節(jié)省很多空間。</p><p><strong>mp3 文件格式結(jié)構(gòu)</strong></p><p>一個 mp3 文件由若干幀組成。其中,每個幀又可以進一步分為幀頭和數(shù)據(jù)塊。我們稱幀的排列順序為碼流。</p><p>mp3 的幀頭通常標志一個有效幀的開端,數(shù)據(jù)塊則包含頻率和振幅這類(壓縮過的)音頻信息。如果你想更加了解 mp3 的文件結(jié)構(gòu),請參考此鏈接:https://upload.wikimedia.org/wikipedia/commons/0/01/Mp3filestructure.svg。</p><p><strong>在 python 中讀取多媒體文件</strong></p><p>想在 Python 中讀取多媒體文件或者對其進行操作,你需要使用名叫 PyMedia 的庫:http://pymedia.org/tut/index.html。</p><p><strong>3.13 MP4 文件格式</strong></p><p>MP4 文件格式用于儲存視頻和影片。它包含了很多圖片(被稱為幀),這些圖片在特定的時間段中播放,從而呈現(xiàn)出視頻的形式。有兩個方法可以解析 mp4 文件:一種是把整個視頻看作單個的實體;另一種則是把視頻中的每一張圖片看作不同的實體,認為圖片是從視頻中抽樣得到的。</p><p>下面是一個 MP4 視頻。</p><div><p><div id="fbwnfa5u" class='imgcenter'><img doc360img-src='https://p.pstatp.com/large/192500009266898485d3' id="img7" src="http://pubimage.360doc.com/wz/default.gif" /></div></p></div><p><strong>讀取 MP4 文件</strong></p><p>python 同樣也有一個用于讀取和編輯 MP4 文件的庫,名叫 MoviePy。</p><p>你可以從 http://zulko.github.io/moviepy/ 下載這個庫。為了讀取 MP4 視頻片段,請在 Python 中使用如下代碼:</p><div>from moviepy.editor import VideoFileClip</div><p>隨后你可以在 jupyter notebook 中顯示它,輸入:</p><div>ipython_display(clip)</div><h1><p><strong>尾 聲</strong></p></h1><p>在本文中,我向大家介紹了一些數(shù)據(jù)科學家每天都要用到的基本的文件格式。但是有很多其他的文件格式,我沒有來得及向大家介紹,可能會在其他文章的中陸續(xù)向大家呈現(xiàn)。</p><p>我希望這篇文章能讓你有所收獲,同時也希望你能探索更多的文件格式。祝你好運!</p><p>本文作者 Ankit Gupta 目前是 IIIT Allahabad 的研究助理,他喜歡解決復雜的數(shù)據(jù)挖掘問題,從而更多地了解數(shù)據(jù)科學和機器學習算法。目前正在開發(fā)一個軟件缺陷預測項目。</p><p><strong>本文由 AI100 編譯,轉(zhuǎn)載需得到本公眾號同意。</strong></p><hr><p>編譯:AI100</p><p>原文鏈接:https://www.analyticsvidhya.com/blog/2017/03/read-commonly-used-formats-using-python/</p><hr></h1></body>

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
nanopore測序技術專題(七):測序結(jié)果文件介紹
TuShare
問答大咖說100:介紹多媒體文件格式!
Office 2003 打開 Office 2007 文件的補?。╠ocx,xlsx)
word2003代開docx格式文件
千千靜聽把文件轉(zhuǎn)換成mp3格式
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服