數據分析之python語言概述

2020-12-25 數據分析師師

作者看著網上各種數據分析的知識泛濫, 但是沒有什麼體系,初學者不知道學哪些, 不知道學多少, 不知道學多深, 單純一個python語言, 數據分析會用到那種程度, 不可能說像開發那樣去學, numpy如果不是做算法工程師用到的知識並不多, pandas知識雜亂無章, 哪些才是最常用的功能等等, 作者不忍眾生皆苦, 決定寫一套python數據分析的全套教程, 目前已完成一部分課件的製作。需要說明的是, 作為一名數據分析師, 你應該先會一點Excel和SQL知識,相關的內容, 網上很多。但是, 即便你一點Excel和SQL都不會也不會影響這部分的學習 !目前作者整理的大綱如下:

第一章 python編程基礎

1.1 python語言概述 1.2 數據科學神器--Anaconda介紹與安裝 1.3 標準輸入輸出 1.4 變量定義與賦值 1.5 數據類型 1.6 流程控制語句 1.7 函數

1.8 面向對象編程 第二章 python數據清洗之numpy 2.1 核心ndarray對象的創建 2.2 ndarray對象常用的屬性和方法 2.3 ndarray對象的索引和切片 2.4 ndarray對象的分割與合併 2.5 ndarray對象的廣播(Broadcast) 2.6 numpy中的算術運算函數 2.7 numpy中的統計函數 2.8 numpy中的排序 搜索 計數 去重函數 2.9 numpy中的字符串函數 2.10 numpy中可能會用到的線性代數模塊(後期機器學習會用到一點)

第三章 數據清洗神器pandas

3.1 pandas核心對象之Series對象的創建 常用屬性和方法 3.2 pandas核心對象之DataFrame對象的創建 常用屬性和方法 3.3 DataFrame對象的列操作和行操作 3.4 DataFrame對象的索引和切片 3.5 DataFrame對象的布爾索引 3.6 數據的讀入與導出 3.7 groupby分組運算 3.8 數據合併與數據透視

第四章 數據可視化matplotlib seaborn pyecharts

4.1 包括常用圖形的繪製,略

第五章 實戰案列

5.1 拉勾網數據分析相關職位分析 5.2 boss直聘數據分析相關職位分析 5.3 珍愛網女性用戶數據分析

第六章 機器學習

機器學習部分, 簡單的算法會講手寫, 難的就用scikit-learn實現, 可能有小夥伴說, 這是調包俠幹的, 小哥哥!小姐姐!哪有那麼多公司, 那麼多人自己幹寫算法的, 有幾個人敢說他寫的算法比scikit-learn寫得好? 再說了, 你是數據分析師, 這些是你的工具, 解決問題的!不是一天到晚拉格朗日對偶性!先來個機器學習介紹, 然後如下:

6.1 K近鄰算法 6.2 Kmeans算法 6.3 決策樹 階段案列:決策樹案列(保險行業) 6.4 線性回歸 嶺回歸 Lasso回歸 6.5 邏輯回歸 6.6 樸素貝葉斯 階段案列:推薦系統(電商玩具) 6.7 隨機森林 6.8 Adaboost 6.9 梯度提升樹GBDT 6.10 極端梯度提升樹Xgboost 6.11 支持向量機SVM 6.12 神經網絡 階段案例:Xgboost案例

------------------------------本節內容-----------------------------------------

python語言概述

在說python之前, 我們還是先來看看計算機軟硬體的發展歷史。

1 計算機硬體的發展歷史

第一代計算機-電子管計算機(1946-1957)

無論如何,一項技術的突破必然伴隨著其他行業的突破,簡而言之,電子計算機的出現,前提必須有電子技術的進步,否則一切都是空談!下面是我列舉出計算機硬體的發展過程中, 一些比較重要的事件。

1906年, 美國的Lee De Forest 發明了電子管。在這之前造出數字電子計算機是不可能的。這為電子計算機的發 展奠定了基礎。

1924年2月, 一個具有劃時代意義的公司成立,IBM。

1935年, IBM推出IBM 601機。 這是一臺能在一秒鐘算出乘法的穿孔卡片計算機。這臺機器無論在自然科學還是在商業意義上都具有重要的地位。大約造了1500臺。

1937年, 英國劍橋大學的Alan M. Turing (1912-1954)出版了他的論文 ,並提出了被後人稱之為"圖靈機"的數學模型。

1937年, 美國貝爾試驗室的George Stibitz展示了用繼電器表示二進位的裝置。儘管僅僅是個展示品,但卻是世界上第一臺二進位電子計算機。

1941年, Atanasoff和學生Berry完成了能解線性代數方程的計算機,取名叫"ABC"(Atanasoff-Berry Computer),用電容作存儲器,用穿孔卡片作輔助存儲器,那些孔實際上是"燒"上的。 時鐘頻率是60HZ,完成一次加法運算用時一秒。這就是ABC計算機。

1946年, 美國賓夕法尼亞大學,第一臺通用電子計算機ENIAC (Electronic Numerical Integrator 和 Computer)誕生, 總工程師埃克特在當時年僅25歲。

這時的計算機的基本線路是採用電子管結構,程序從人工手編的 機器指令程序(0 1),過渡到符號語言(彙編),電子管計算機是計算工具革命性發展的開始,它所採用的進位制與程序存貯等基本技術思想,奠定了現代電子計算機技術基礎。以馮·諾依曼為代表。

第二代計算機——電晶體計算機(時間1957~1964)

電子管時代的計算機儘管已經步入了現代計算機的範疇,但其體積之大、能耗之高、故障之多、價格之貴大大制約了它的普及應用。直到電晶體被發明出來,電子計算機才找到了騰飛的起點,一發而不可收……

20世紀50年代中期,電晶體的出現使計算機生產技術得到了根本性的發展,由電晶體代替電子管作為計算機的基礎器件,用 磁芯或磁鼓作存儲器,在整體性能上,比第一代計算機有了很大的提高。

第三代計算機——中小規模集成電路計算機(時間1964~1971)

20世紀60年代中期, 計算機發展歷程隨著半導體工藝的發展,成功製造了集成電路。中小規模集成電路成為計算機的主要部件,主存儲器也漸漸過渡到 半導體存儲器,使計算機的體積更小,大大降低了計算機計算時的功耗,由於減少了 焊點和 接插件,進一步提高了計算機的可靠性。

第四代計算機——大規模和超大規模集成電路計算機(時間1971~至今)

隨著大規模集成電路的成功製作並用於計算機硬體生產過程,計算機的體積進一步縮小,性能進一步提高。集成更高的大容量半導體存儲器作為內存儲器,發展了並行技術和多機系統,出現了 精簡指令集計算機(RISC),軟體系統工程化、理論化,程序設計自動化。微型計算機在社會上的應用範圍進一步擴大,幾乎所有領域都能看到計算機的「身影」。

第五代計算機——泛指具有人工智慧的計算機(至今~未來)

目前還沒有明確地定義

2 簡述計算機軟體的發展歷史

程式語言的發展

計算機軟體系統的發展,也伴隨著程式語言的發展。電腦程式設計語言的發展,經歷了從機器語言、彙編語言到高級語言的歷程。

機器語言:簡單點說,機器本身也只認識0和1,電路無非就只有通和斷兩種狀態,對應的二進位就是二進位的1和1。

彙編語言:彙編語言只是把一些特殊的二進位用特殊的符號表示,例如,機器要傳送一個數據,假設「傳送」這個指令對應的機器碼是000101,則人們把000101用一個特殊符號,比如mov來表示,當人們要用這個指令時用mov就行,但是mov的本質還是000101,沒有脫離硬體的範圍,有可能這個指令不能在其他機器上用。

高級語言:高級語言完全脫離了硬體範疇,所有的語法更貼近人類的自然語言,人們只需要清楚高級語言的語法,寫出程序就行了,剩下的交給編譯器或者解釋器去編譯或者解釋成機器語言就行了,看,這樣就完全脫離了硬體的範疇,大大提高了程序的開發效率。接下來我們就來看看高級語言的發展,高級語言非常多,我們主要看看比較經典的幾個。

高級語言的發展

B語言與Unix

20世紀60年代,貝爾實驗室的研究員Ken Thompson(肯·湯普森)發明了B語言,並使用B編了個遊戲 - Space Travel,他想玩自己這個遊戲,所以他背著老闆找到了臺空閒的機器 - PDP-7,但是這臺機器沒有作業系統,於是Thompson著手為PDP-7開發作業系統,後來這個OS被命名為 - UNIX。

C語言

1971年,Ken Thompson(肯·湯普森)的同事D.M.Ritchie(DM裡奇),也很想玩Space Travel,所以加入了Ken Thompson,合作開發UNIX,他的主要工作是改進Thompson的B語言。最終,在1972年這個新語言被稱為C,取BCPL的第二個字母,也是B的下一個字母。

C語言和Unix

1973年,C主體完成。Ken Thompson和D.M.Ritchie迫不及待的開始用C語言完全重寫了UNIX。此時編程的樂趣已經使他們完全忘記了那個「Space Travel」,一門心思的投入到了UNIX和C語言的開發中。自此,C語言和UNIX相輔相成的發展至今。

類C語言起源、歷史

C++(C plus plus Programming Language) - 1983

還是貝爾實驗室的人,Bjarne Stroustrup(本賈尼·史特勞斯特盧普) 在C語言的基礎上推出了C++,它擴充和完善了C語言,特別是在面向對象編程方面。一定程度上克服了C語言編寫大型程序時的不足。

Python (Python Programming Language)--1991

1989年聖誕節期間,Guido van Rossum 在阿姆斯特丹,Guido van Rossum為了打發聖誕節的無趣,決心開發一個新的腳本解釋程序,做為ABC語言的一種繼承。之所以選中Python(大蟒蛇的意思)作為該程式語言的名字,是因為他是一個叫Monty Python的喜劇團體的愛好者。第一個Python的版本發布於1991年。

Java(Java Programming Language) - 1995

Sun公司的Patrick Naughton的工作小組研發了Java語言,主要成員是James Gosling(詹姆斯·高斯林)

C(C Sharp Programming Language) - 2000

Microsoft公司的Anders Hejlsberg(安德斯·海爾斯伯格)發明了C,他也是Delphi語言之父。

當然現在還有一些新語言,比如2009年Google的go語言,以及麻省理工的julia等。

3 為什麼是Python

Python有哪些優點

1 語法簡單 漂亮:我們可以說Python是簡約的語言,非常易於讀寫。在遇到問題時,我們可以把更多的注意力放在問題本身上,而不用花費太多精力在程序語言、語法上。

2 豐富而免費的庫:Python社區創造了各種各樣的Python庫。在他們的幫助下,你可以管理文檔,執行單元測試、資料庫、web瀏覽器、電子郵件、密碼學、圖形用戶界面和更多的東西。所有東西包括在標準庫,然而,除了它,還有很多其他的庫。

3 開源:Python是免費開源的。這意味著我們不用花錢,就可以共享、複製和交換它,這也幫助Python形成了豐富的社區資源,使其更加完善,技術發展更快。

4 Python既支持面向過程,也支持面向對象編程。在面向過程編程中,程式設計師復用代碼,在面向對象編程中,使用基於數據和函數的對象。儘管面向對象的程序語言通常十分複雜,Python卻設法保持簡潔。

5 Python兼容眾多平臺,所以開發者不會遇到使用其他語言時常會遇到的困擾。

Python有哪些作用

Python是什麼都能做,但是我們學的是數據分析,我們看看在數據分析領域Python能做什麼。

數據採集:以Scrapy 為代表的各類方式的爬蟲

數據連結:Python有大量各類資料庫的第三方包,方便快速的實現增刪改查

數據清洗:Numpy、Pandas,結構化和非結構化的數據清洗及數據規整化的利器

數據分析:Scikit-Learn、Scipy,統計分析,科學計算、建模等

數據可視化:Matplotlib、Seaborn等等大量各類可視化的庫

所以說總結, 為什麼數據科學選的是python, 最重要就是兩個原因:

1 語法簡單漂亮

2 大量豐富免費的第三方庫

相關焦點

  • Scala語言概述
    第1章、 Scala語言概述==知識結構==Scala這門課主要分為以下幾個階段進行學習。
  • |建模|excel|數據分析|python|...
    01數據分析是什麼?簡單來說,數據分析是連接數據與人類認知之間的橋梁。正如,科學家要顯微鏡才能觀察微生物、看鐘表方知時間、測體溫用溫度計……對於人類用感官無法直接認知的數據,需使用「數據分析」工具來幫忙。
  • Python程序設計基礎 漫筆1st:Python概述
    一.Python語言簡介——What is python?
  • Python零基礎編程——起步並搭建環境
    適合本文,將從零介紹講解編程入門,已有基礎的同學當溫故而知新,未知編程為何物的同學開啟技術之旅。一 編程技術簡介1-程序是什麼?程序就是你使用的電子產品內部的數據+邏輯算法。你手機的微信、頭條、抖音、快手、QQ等,你能看到的一切,都是程序。都是人造的科學。你也可以寫這些程序,只要你掌握了編程技術。而編程,就是編寫程序的過程。
  • 微軟發布新的VS Code Python語言插件Pylance:高性能代碼提示
    最近微軟VS Code博客宣布了Python的支持插件Pylance,這是微軟推出的一個快速而且功能豐富的Python語言擴展。Pylance依賴於微軟官方的ms-python,目前在VS Code應用市場可以下載。本文蟲蟲就帶大家一起嘗鮮使用這個插件。
  • 極簡計算機語言概述
    Python使用廣泛,大概是最人性化的還比較有效率的解釋型計算機語言了。而Java語言則是最優美與嚴謹,最接近計算機軟體工程理想的語言,比起python來,還是更靠近機器一些,比起C++,其面向對象的實現更為純潔、簡練、徹底。還有一些其他語言,比如php腳本,天生具有web開發支持的各種參數、方法支持;Erlang是強調並發能力的開發語言,則是完全與python、php反其道行之。
  • Python—程序語言入門
    所想要表達的意思——>編程軟體翻譯成二進位——>計算機接收並執行常用、最流行的幾種程序語言:C、C++、c#、Java 、VB、python3、Python可以用來做什麼   開發遊戲&軟體(遊戲後臺大多數用python編寫);   製作更高級的Flash(web flash game);   創建資料庫
  • 如果想成為python全棧工程師,那就必須掌握這幾種知識!
    就web開發方向而言需要學習的內容:前端知識 包括HTML5 CSS3 JS Jquery Ajax,後端至少需要能夠熟練使用 Django和tornado 當然會flask更好Python全棧工程師是比較受歡迎的一類人才,本身Python語言具備全端開發的能力,所以Python的全棧工程師也比較多。
  • 計算機二級《Python語言程序設計 最新版》電子教案PDF,請收下
    內容簡介本書是根據教育部考試中心制訂的《全國計算機等級考試二級Python語言程序設計考試大綱(考試版)》的要求而編寫的。本書共分為11章,第1章介紹程序設計的基本方法,主要包括Python語言概述和開發環境配置;第2章和第3章主要介紹Python語言基本語法元素和基本數據類型;第4章介紹程序的控制結構;第5章介紹函數和代碼復用;第6章介紹組合數據類型;第7章介紹文件和數據格式化;第8章至第11章介紹Python的計算生態、標準庫和第三方庫。
  • 量化投資-為什麼選擇Python?
    霸主統治、數以億計的運行設備、龐大的生態圈、大型企業項目必用程式語言。而Python在量化投資領域的地位,猶如Java在IT行業的地位一般。為什麼量化投資要選擇Python?全面、平衡是對Python這門語言最好的介紹。誕生之初Python被譽為世界上最容易上手的程式語言。進入AI人工智慧時代,靠其功能強大、高效靈活、對數據分析提供良好的支持,成為人工智慧,數據分析領域不可或缺的程式語言。
  • rPython:在R語言中調用python命令
    經常使用Python和R語言的人都知道,如果R中有某些功能Python不容易實現時,則可以安裝加載rpy2包,從而實現在python中調用R語言命令的功能
  • python語言在全球廣泛應用
    很簡單,還是不能去理解如何利用一些簡單的python語法去實現這些簡單的功能。比如說同樣是logistic回歸,這麼多基礎的框架,如果用python來實現,你還得去看一堆代碼,然後再自己手寫一遍代碼。那麼在日常的實際工作中,到底需要哪些簡單的工具和代碼來解決實際的問題呢?
  • 《小灰教你零基礎學python》-Python入門語言
    >c語言php(有人稱php是最好的程式語言)這裡包括咱本套課程需要學習的python,其實理解咱這麼理解就行:咱們和外國人交流需要說英語,那麼咱們必須要學會英語才能和對方溝通;咱們需要讓電腦進行「溝通」就必須要使用程式語言。
  • Python編程學了有用嗎?
    眾所周知,目前家長對於孩子的教育越來越重視,培養孩子的編程思維也是大家關心的話題,孩子學習Python語言,需要使用精確到標點、分號等特殊字符,可以提高孩子的編程能力和邏輯思維能力。作為成成年人學python編程可以大大提高工作效率。
  • Python函數概述
    /usr/bin/python #可寫函數說明def printme( string ):   "列印任何傳入的字符串"   print string #調用printme函數printme()以上實例輸出結果:Traceback (most recent call
  • 數據分析需要掌握哪些技能?SQL、Python是什麼?需要多久去學習
    要想分析,我們需要先有數據,數據的獲取也分為外部數據獲取以及內部的數據獲取,外部的數據獲取方法包括爬蟲,還有從官方的統計網站上去下載的數據的等等;內部的數據獲取方法,主要依靠的就是SQL了,就是從公司內部的資料庫中提取我們所需要用來支撐分析的數據,雖然SQL是程式語言,但SQL不是很難,SQL的基礎語句不超過十句,而且邏輯比較簡單。
  • Python語言之Python探針實現原理
    關於 sys.meta_path 更詳細的資料請查閱 python 文檔中 sys.meta_path 相關內容以及 PEP 0302 。$ python meta_path1.pyfind_module httpload_module http<module 'sys' (built-in)>sys.version_info(major=3, minor=5, micro=1, releaselevel='final', serial=0)通過 sys.meta_path
  • Python語言基本語法元素之變量,變量的含義及命名規則
    筆者希望給python初學者提供幫助。上一篇文章寫了Python語言基本語法元素之格式框架:注釋、縮進、續行符這裡繼續,Python語言基本語法元素之變量。變量命名規則python採用 大寫字母、小寫字母、數字、下劃線和漢字 等字符及其組合進行命名。(Ab3_哈,是一個合法變量。但通常不建議用漢字,因為存在兼容性問題。)
  • Python學習指南| 快速入門Pandas數據分析技巧
    Python是公認的目前數據科學領域最受歡迎的編程軟體,而在知名程式語言參考指標榜單PYPL發布的5月程式語言指數榜中,Python
  • Python 可視化神器--Plotly
    學習Python是做數分析的最基礎的一步,數據分析離不開數據可視化。Python第三方庫中我們最常用的可視化庫是 pandas,matplotlib,pyecharts,當然還有 Tableau,另外最近在學習過程中發現另一款可視化神器-Plotly,它是一款用來做數據分析和可視化的在線平臺,功能非常強大,可以在線繪製很多圖形比如條形圖、散點圖、餅圖、直方圖等等。