天天看點

第二熱門語言:從入門到精通,Python資料科學簡潔教程

本篇文章的主要目的在于向大家展示使用python學習資料科學有多麼的容易。你可能以為自己要先成為一名進階python程式員,然後才能進行通常與資料科學相關的複雜任務,然而事實并非如此。python附帶了很多有用的工具庫,它們可以在背景為你提供強大的支援。你甚至不需要知道程式在運作什麼,你不必關心這些。唯一你真正需要知道的是,你需要執行一些特定的任務,而python使這些任務變得相當簡單。

那麼,讓我們現在就開始吧。

無論你使用的電腦是mac還是windows,我都建議你下載下傳一個免費的能夠讓你輕松通路盡可能多的有用子產品的python發行版本。

在你下載下傳anaconda的時候,你需要選擇下載下傳python 2版本還是python 3版本。我強烈建議你使用python 2.17.12版本。截止到2016年底,絕大多數的非計算機科學的python使用者都使用了這個python版本。它能夠出色地完成資料科學任務,比python 3更容易學習,而且像github這樣的網站中有數百萬的python腳本和代碼片段,可供大家參考,生活會變得更加容易。

anaconda也附帶了ipython程式設計環境,建議大家使用。安裝anaconda後,隻需要導航到jupyter筆記本并開啟程式,就可以在web浏覽器中打開ipython。jupyter筆記本的程式會自動啟動web浏覽器中的應用程式。

第二熱門語言:從入門到精通,Python資料科學簡潔教程

在你深入了解python的資料科學庫之前,你首先需要學習一些python的基礎知識。python是一門面向對象的程式設計語言。在python中,對象既可以指派給一個變量,也可以作為參數傳遞給一個函數。以下都是python中的對象:數字、字元串、清單、元組、集合、字典、函數以及類。

python中的函數與普通數學中的函數基本上是一緻的——它接收輸入資料,對資料進行處理并輸出結果。輸出的結果完全取決于函數是如何被設計的。另一方面,python中的類是被設計為輸出其他對象的對象的原型。

如果你的目标是編寫快速、可複用、易于修改的python代碼,那麼你必須使用函數和類。使用函數和類有助于保證代碼的高效與整潔。

現在,讓我們看看python中有哪些可用的資料科學工具庫。

numpy是一個主要用于處理n維數組對象的python工具包,而scipy則提供了許多數學算法與複雜函數的實作,可用來擴充numpy庫的功能。scipy庫為python添加了一些專門的科學函數,以應對資料科學中的一些特定任務。

為了在python中使用numpy(或其他任何python庫),你必須首先導入對應的工具庫。

第二熱門語言:從入門到精通,Python資料科學簡潔教程

np.array(scores) 将一個清單轉換成一個數組。

當你使用普通的python程式時——未使用任何外部擴充(例如工具庫)的python程式——你隻能受限地使用一維清單來存儲資料。但是,如果你使用numpy庫來擴充python,你可以直接使用n維數組。(如果你想知道的話,n維數組是包含一個或多個次元的數組。)

最開始就學習numpy,是因為在使用python進行科學計算時numpy必不可少。對numpy的深入了解将有助于你高效地使用pandas和scipy這樣的工具庫。

pandas是資料再加工過程中使用的最為廣泛的工具。它包含為使資料分析更加快速便捷而設計的進階資料結構與資料操作工具。對于使用r語言進行統計計算的使用者,一定不會對dataframe的變量名感到陌生。

pandas是python成長為一個強大而高效的資料分析平台的關鍵因素之一。

接下來,我将向你展示如何使用pandas處理一個小型資料集。

第二熱門語言:從入門到精通,Python資料科學簡潔教程

dataframe是一個電子表格結構,包含一個有序的列集合。每個列都可以有不同的變量類型。dataframe既包含行索引,也包含列索引。

第二熱門語言:從入門到精通,Python資料科學簡潔教程

matlplotlib是python中一個用于資料可視化的子產品。matplotlib可使你輕松地繪制線形圖、餅狀圖、直方圖以及其他專業圖表。

你可以使用matplotlib自定義圖表中的每個細節。當你在ipython中使用matplotlib時,matplotlib具備縮放、平移等互動特性。matplotlib在所有作業系統上均支援不同的gui後端,同時,它也可以将圖表導出為若幹種常見的圖像格式,如pdf、svg、jpg、png、bmp、gif等。

第二熱門語言:從入門到精通,Python資料科學簡潔教程

seaborn是一個基于matplotlib的資料可視化工具庫,用來在python中建立富有吸引力且内容翔實的統計圖表。seaborn的主要特點在于,其僅使用相對簡單的指令就可以從pandas資料中建立出複雜的圖表類型。我使用seaborn繪制了下面這幅圖:

第二熱門語言:從入門到精通,Python資料科學簡潔教程

機器學習的目标在于通過向機器(軟體)提供一些示例(如何執行任務或者執行什麼無法完成任務)來教會機器執行任務。

python中有很多機器學習的工具庫,然而,scikit-learn是最受歡迎的一個。scikit-learn建立在numpy、scipy與matplotlib庫之上。基于scikit-learn庫,你幾乎可以實作所有的機器學習算法,如回歸、聚類、分類等等。是以,如果你打算使用python學習機器學習,那麼我建議你從學習scikit-learn開始。

第二熱門語言:從入門到精通,Python資料科學簡潔教程
第二熱門語言:從入門到精通,Python資料科學簡潔教程

其他的一些機器學習庫還有:

<a href="http://deeplearning.net/software/theano/">theano</a>

<a href="http://deeplearning.net/software/pylearn2/">pylearn2</a>

<a href="http://pyevolve.sourceforge.net/">pyevolve</a>

<a href="http://caffe.berkeleyvision.org/">caffe</a>

<a href="https://www.tensorflow.org/">tensorflow</a>

statsmodels和scipy.stats是python中兩個熱門的統計學習子產品。scipy.stats主要用于機率分布的實作。另一方面,statsmodels則為統計學模型提供了類似于r的公式架構。包括描述統計學、統計檢驗、繪圖函數以及結果統計在内的擴充功能均适用于不同類型的資料以及每一種估計器。

下面的代碼展示了如何使用scipy.stats子產品調用正态分布。

第二熱門語言:從入門到精通,Python資料科學簡潔教程
第二熱門語言:從入門到精通,Python資料科學簡潔教程

web抓取:requests、scrapy與beautifulsoup

web抓取表示從網絡中擷取非結構化資料(通常為html格式),并将其轉換為便于分析的結構化格式資料的過程。

深受歡迎的用于web抓取的工具庫有:

scrapy

url lib

beautifulsoup

requests

要從網站中爬取資料,你需要了解一些html的基本知識。

這裡有一個使用beautifulsoup庫進行網絡爬取的示例:

import urllib2 import bs4
第二熱門語言:從入門到精通,Python資料科學簡潔教程

代碼beautiful = urllib2.urlopen(url).read();前往bigdataexaminer.com并擷取了網站對應的整個html文本。随後,我将文本存儲在變量beautiful中。

_"scrapy是一個web爬蟲,或者說,是一個web爬蟲架構,你為scrapy提供一個開始抓取操作的根url,然後你可以指定一些限制,例如要抓取多少個url等等,這是一個用于web抓取或爬取的完整架構。

而beautifulsoup則是一個解析庫,它也可以出色地頁面爬取任務,并允許你輕松地解析頁面中的某些内容。但是,beautifulsoup隻會抓取你提供url的頁面的内容。它不會抓取其他頁面,除非你以一定方式手動地将頁面url添加到循環中來。

簡單來說,你可以用beautifulsoup建構出與scrapy類似的東西。但是beautifulsoup是一個python庫,而scrapy則是一個完整的架構。"_

現在,你知道了python的一些基礎知識以及這些工具庫的用途。是時候使用你所學到的知識來解決具體的資料分析問題了。你可以先處理結構化的資料集,之後可以解決那些複雜的非結構化資料分析問題了。

<a href="https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?usercode=lwju78qa&amp;utm_source=lwju78qa">數十款阿裡雲産品限時折扣中,趕緊點選領劵開始雲上實踐吧!</a>

以上為譯文

文章原标題《python for data science made simple: a step-by-step guide》,作者:manu jeevan,譯者:6816816151