亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
慕課專欄

目錄

索引目錄

Python 數據分析通關攻略

原價 ¥ 58.00

立即訂閱
01 開篇詞:用Python做數據分析,再合適不過了
更新時間:2020-06-28 10:26:56
生活的理想,就是為了理想的生活。——張聞天

21世紀的企業競爭是數據的競爭,誰掌握數據,誰就掌握未來。我們每個人都處于數據洪流之中,大數據可以幫助我們分析數據背后的價值。數據整合分析后得到的信息,是數據背后的價值,大數據實現了數據到信息的轉化,掌握了大數據時代下的數據,就能夠指導世界發展。

正所謂“工欲善其事 必先利其器”,在時代的大背景下,選擇最有前景的工具去完成手頭的工作,是值得我們每個人去停下來思考的問題。

最近幾年,大數據、人工智能、機器學習等概念異常火爆,以至于普通人對此均有所耳聞。而Python語法簡單靈活易學,擁有龐大的外部庫可擴展自己的應用領域,尤其是許多與大數據內容相關的庫,如Matplotlib、Numpy、Pandas、SciPy、TensorFlow等,因此Python成為了大數據、人工智能、機器學習的首選語言而備受關注。所以我們說,python做數據分析,再合適不過了

Python語法簡單易學

如果你不是科班出身的程序猿,那么Python對你來講應該是最好的編程語言了,沒有之一。如果你是科班程序員,再掌握一門Python語言,絕對是如虎添翼的事情。

Python語言非常的簡潔,并且可讀性非常強。所以,Python的程序對于新手朋友們非常友好,只要你按部就班地學習,并輔之以一定的練習與實戰,進入這個領域并且能夠用Python工作完成日常工作,3個月足矣。并且這會導致一個良性循環,Python在日常工作中打開局面,會進一步激發你的學習興趣,進而促使你有更多的信心去更加深入地學習這門語言。

# Python 打印99乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print("{}×{}={}".format(i, j, i*j), end='  ')
    print("")

單從Python語法角度來說,其基礎語法非常簡單,非常注重用少量的代碼構造出很多功能。簡單4行代碼,就可以打印出99乘法表,簡約而不簡單。移動互聯時代,快人一步,則搶奪先機。簡潔的語法,則是更高開發效率的代名詞。

Python還是一門腳本語言

腳本語言的“優勢”,其實在于它不需要事先“編譯”。而Python不僅僅是一門高級語言,它還有腳本語言的特征。這就能拿來做很多事情了。例如做數據清洗的時候,我們迫切地需要看到每一步的執行效果,以此來判斷下一步的行動,而這是其它高級語言所不能提供的能力。

Python提供了很多交互式編程環境,比如Ipython,還有最近大名鼎鼎的Jupyter。這對我們的數據分析場景尤為重要。

試想這樣一個情況:我有很多封裝為函數的小段可視化代碼,為了避免代碼過于分散,我將封裝好后全部放進一個文件中。如果我希望同時執行其中的數段代碼可視化功能,以比較不同的代碼執行的效果。那我可要抓狂了,因為在同一個集成編輯環境中,我只能顯示一個可視化效果,除非我將它們分別下載下來一一比較。

在交互式編程環境中,比如Jupyter,則完全沒有這樣的煩惱。每段代碼可以在同一個頁面中分開運行,并交互式的展現,執行完成后,結果會以文本文件的格式寫入到當前頁面中。當你執行一整套流程,Jupyter結果會像一篇筆記一樣讓你賞心悅目。而這正是Python作為一門腳本語言帶來的獨特魅力。

圖片描述

從這個角度說,選擇用Python做數據分析,是理所當然的選擇。事實上,我們可以用先用Python腳本語言的特性做數據處理,再用高級語言的特性對數據能力進行封裝。甚至于可以在封裝階段調用C語言的接口,提供額外的擴展功能,而這又是Python作為“膠水語言”的特性了。

Python語言是人工智能的首選

日前,Tiobe發布了2019年6月編程語言排行榜,排名前五的分別是:Java、C、Python、C++、 Visual Basic。其中,Java依舊穩居第一,Python則升至第三位。

圖片描述

Python在統計、AI 編程、腳本編寫、系統測試等領域均排名第一。此外,Python還在Web編程和科學計算等領域處于領先地位,總之,Python無處不在。目前的情況是,越來越多的開發者正在涌入這些領域,為這些領域帶來強大的生命力。

火熱只是表象,深層次的原因則是強大的AI支持庫。

NumPy支持維度數組與矩陣運算,堪稱AI數據神器,而各種算法,實際上處理的都是矩陣和向量。使用NumPy,矩陣的轉置、求逆、求和、叉乘、點乘……都可以輕松地用一行代碼搞定,行、列可以輕易抽取,矩陣分解也不過是幾行代碼的問題。而且,NumPy在實現層對矩陣運算做了大量的并行化處理,通過數學運算的精巧,而不是讓用戶自己寫多線程程序,來提升程序效率。

圖片描述

對于AI模型,幾十上百行代碼就夠了。當然你也可以選擇采用成熟的模型而調用Scikit-Learn的接口,效果卻輕而易舉地超越前輩的規則模型,簡直沒有比這更讓新入門的朋友如此開心的事情了。

對于深度神經模型,Python也有現成的平臺的可以選用,比如TensorFlow,是搭建深度神經網絡的首選。

Python生態的完善,讓Python的學習曲線非常平緩。你可以選擇先成為一名數據分析師,在完全駕馭這個領域之后,再學習經典算法,成為一名數據挖掘領域的專家。如果你對新技術充滿虔誠與狂熱,那么進入深度學習領域吧。數據分析能力將成為你在AI這個領域的奠基石,算法與數學的積累,會讓你在AI的殿堂里走的更遠,總之你的一切能力都不會浪費,他們都會因你的下一次選擇而不斷升華。

而這源于你今天選擇了Python這門工具,開啟了數據分析的序幕。

統計分析?數據可視化?Python都擅長

如果說Python是基礎的話,那么Python數據分析的三大工具(NumpyPandas,Matplotlib)則是數據分析領域最為燦爛的三大明珠。正是這三大工具,把數據分析推向了另一個高潮。

Numpy提供了一套高效操作數組的方法,是Python科學計算的基礎包。

Pandas是一個表格容器,它納入了大量的標準化的數據模型,提供了高效地操作大型數據集所需的方法。這是成為強大而高效的數據分析環境的重要因素之一。

Matplotlib則是提供了一套可視化的方法。初次接觸大家可能會有這樣的疑問,MatplotlibMATLAB的名字有些相似,它們是否有一定的相似性呢?

可以這么說,Matplotlib的誕生是源于模仿MATLAB,但是依托Python強大的開發生態,解決MATLAB自身的局限性。MATLAB是一款科學計算軟件,在處理數據與程序的交互式場景中,就顯得有些相形見絀。而Python作為一款高級語言,在與應用層的交互性方面有著近乎降維打擊的優勢。并且Matplotlib繼承了Python語法簡潔優美、開源免費的特點,因此在學術界和工業節應用廣泛。

特別是近幾年,依托于Python建立的數據分析生態愈發完善,像基于Matplotlib更高級封裝的Seaborn,以及依托百度Echarts而來的Pyecharts等等,這些越來越多的開發者貢獻自己的智慧,把Python的數據開發生態搭建得越來越齊全。

所以說,選擇用Python做數據分析,其實是選擇了這個生態,依托于這個生態,就像是站在了巨人的肩上,只有站得高,才能看得遠。

沒有數據源?那自己寫個爬蟲好了

俗話常說“巧婦難為無米之炊”,我們學習數據分析,可能最大的阻礙不是語法知識,而是沒有足夠的數據源去實戰。如果不在實際項目中,空學幾句語法,那不成了花架子了?用Python則完全不用擔心!

網絡爬蟲通俗的講就是通過程序去自動采集數據。世界上80%的爬蟲是基于Python開發的,學好爬蟲技能,可為后續的大數據分析、挖掘、機器學習等提供重要的數據源。

Python寫爬蟲,其實也很簡單,只要你了解基礎的HTML知識,那么也可以快速開發出自己的爬蟲程序,這里我們簡單看一個豆瓣電影清單的demo,只要三十行的代碼量,就可以自動從豆瓣上采集。在本章的第三小節,我們會詳細講解這個demo,包括爬蟲的編寫邏輯、requests庫的安裝等等。

#!/usr/bin/env python
# coding: utf-8

import json
import re
import requests
from requests import RequestException

# 獲取網頁的內容,以文本形式返回
def get_page(url):
    headers = {
        "Host":"movie.douban.com", 
        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
    }
    try:
        response = requests.get(url, headers=headers)
        if response.status_code == 200:
            return response.text
        return None
    except RequestException:
        return None

# 對網頁文本內容進行解析
def parse_page(html):
    pattern = re.compile('<li.*?list-item.*?data-title="(.*?)".*?data-score="(.*?)".*?>.*?<img.*?class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="(.*?)".*?/>', re.S)
    items = re.findall(pattern, html)
    for item in items:
        yield{
            'title': item[0],
            'score': item[1],
            'image': item[2],}

# 爬蟲主程序,同時print效果
def main():
    url = "https://movie.douban.com/cinema/nowplaying/beijing/"
    html = get_page(url)
    print(html)
    for item in parse_page(html):
        print(item)

main()

總結

總結來說,用Python做數據分析,再適合不過了!Python是一個強有力的編程生態,通俗來說就是,Python能力非常全面:Numpy,Pandas是專門為數據分析打造的工具,而Matplotlib等工具則提供了可視化的捷徑;如果沒有數據,Python還可以非常便捷地用來編寫爬蟲程序,解決數據來源的問題。利用Python工具,可以在最短的時間內,打通數據獲取、清洗、統計、到可視化的整個流程。并且Python語法簡單易學,學習曲線平滑,非常適宜沒有編程基礎或者非科班出身的朋友學習。

特別需要指出的是,學會了這門課,不僅僅是多了一個技能,而是多了一個打開AI大門的鑰匙,一張AI賽程的入場券!所以,你準備好了嗎?

}
立即訂閱 ¥ 58.00

你正在閱讀課程試讀內容,訂閱后解鎖課程全部內容

千學不如一看,千看不如一練

手機
閱讀

掃一掃 手機閱讀

Python 數據分析通關攻略
立即訂閱 ¥ 58.00

舉報

0/150
提交
取消