學習大數據分析python編程指南

 每個人都喜歡Python。如果您打算開始從事數據科學事業,我們可以肯定Python在您心中已經佔有特殊的位置。它直觀且易於在任何平臺上運行,並且具有大量令人驚歎的庫和工具。與其他編程語言相比,Python在深度學習算法方面也提供了強大的支持。此外,它擁有龐大的數據科學家和開發人員社區,可以不斷改進語言。實際上,關於Python編程,還有更多的話要說–應用程序,工作前景,IDE,庫,框架,從何處開始,如何開始……,我們專門針對它進行全面介紹。

  因此,歡迎閱讀學習大數據分析python編程指南!

  我們將文章分為兩部分。第一個面向那些不瞭解Python是什麼,或者想知道是否開始學習Python的人。第二部分包含了一旦決定開始學習Python便可以應用的信息和實用技巧。

  要瀏覽指南,您可以使用下面的目錄。您可以決定跳到您感興趣的部分,或者一遍又一遍地閱讀整篇文章。無論哪種方式,您都將獲得一些寶貴的見解。

  我們希望該Python指南對您有所幫助,並且對每個人都有好處。請享用!

  內容

  Python概述

  a.什麼是Python

  b.Python的應用是什麼

  c.為什麼要學習Python

  d.Python與其他語言

  e.Python難學嗎

  f.工作前景

  Python入門

  a.要學習哪個Python版本

  b.如何安裝Python

  c.哪些是最適合Python開發的IDE

  d.頂級的Python庫和框架

  e.從哪兒開始

  f.實踐使完美

  一、Python概述

  在本節中,我們將介紹Python的起源及其用途。我們還將為您提供為什麼它是學習的最佳編程語言之一的主要原因。

  1.1什麼是Python?

學習大數據分析python編程指南

  Python是一種開放源代碼,跨平臺的通用編程語言。就編程語言而言,它既不是新的,也不是太老。它的開發始於80年代後期,並於1991年首次向公眾發佈。Python語言創建者Guido van Rossum對此有明確的願景:使其像普通英語一樣易於理解。回想起來,這可能有點過於樂觀。儘管如此,語言的目的是強調可讀性和有效空白的使用。換句話說,它努力與人類語言儘可能接近。現在,Python這個名字呢?

  您可能會像許多人一樣認為,該名稱起源於受到飲食挑戰的蛇。你會錯的。事實證明,Rossum(Python的創造者)是英國喜劇的忠實擁護者……並在實現Python的同時從Monty Python的Flying Circus中讀取腳本。因此,這個名字是對偉大的英國喜劇製作者的致敬。

  現在,如果這還不足以激發您對Python及其創建者的興趣,那麼下一節將回答一個重要問題:Python的應用程序是什麼?

  1.2Python的應用是什麼?

  在過去的幾年中,Python越來越流行,現在已廣泛用於各種應用程序中。它甚至經常被稱為“學習的最佳編程語言”。Python用於開發YouTube之類的視頻播放器,Instagram之類的強大應用,在Intel處測試微芯片,在Google處運行搜索引擎,甚至在紐約證券交易所(NYSE)進行交易。您知道編程語言在維護證券交易所繫統時非常強大。實際上,NASA在對設備和太空機器進行編程時也使用Python。好吧,那不是嗎?讓我們進一步審查其中一些應用程序。

  數據科學用Python

  最近,Python在各個行業的普及率迅速上升,這主要是由於其數據科學庫。

  在商業和學術界,Python都發現了廣泛的數據分析應用程序。它是大多數數據科學界的首選語言。為什麼?由於使用了各種工具,因此可以輕鬆使用龐大的數據集並獲得重要的見解。

  Python庫(例如NumPy和Pandas)廣泛用於數據集的收集,處理和清理,以及在應用數學算法以使用戶受益時。使Python成為數據科學家的絕佳工具的另一個方面是Matplotlib和Seaborn附帶的強大可視化工具。

  適用於機器學習的Python

學習大數據分析python編程指南

  如果您以前從未聽說過機器學習(ML),請快速入門。ML是指計算機能夠從訓練數據中“學習”(將模型擬合到輸入中)以做出預測(例如,基於客戶過去的數據來購買該產品的可能性如何)的能力購買)。它被“智能”算法(使用大型數據集)和許多公司廣泛採用。

  確實,公司有很多使用Python的充分理由。

  它的庫(例如Scikit-learn,TensorFlow和NLTK)被廣泛用於預測趨勢,例如客戶滿意度,股票的預計價值等。說到庫,TensorFlow的故事尤其有趣。Google開發了它供內部使用,但他們在2015年將其發佈為開放源代碼庫。但是我們將在2.4節中重新討論它,在此我們將詳細介紹Python庫。

  鑑於當今機器學習和人工智能的重要性日益增長,Python的這一方面肯定會進一步提高。

  用於Web開發的Python

學習大數據分析python編程指南

  HTTP編程(或者,我們通常稱之為Web開發)不再只是使用JavaScript完成。實際上,Python在其中也扮演著重要的角色。因此,在本節中,我們將向您介紹一個稱為Django的主要Python框架。此外,我們還會看到一些使用Django為其Web服務的主要公司。

  Django是一個完整的Web框架。現在,這到底是什麼意思?全棧框架為您提供構建完整的Web應用程序所需的一切。其中包括網絡服務,數據庫管理,甚至HTML生成。因此,Django是《衛報》,《紐約時報》,Instagram和Pinterest等網站和服務的基礎也就不足為奇了。看起來,如果您要構建大型而複雜的Web應用程序,那麼Django是必經之路。

  但是,如果您想創建簡單的Web應用程序怎麼辦?

  讓我們潛入另一個使用Python創建網站內容的選項– Flask。Flask是一個微型輕量級的Web框架。這意味著它更加直觀且易於使用。如果要完成更復雜的任務,則可能需要第三方框架。但請考慮一下:在2018年,Flask超過Django 2%,其中47%的用戶選擇Flask,45%的用戶選擇Django。這表明Web開發行業已經朝著較小的框架,微服務和“無服務器”平臺發展。這可能是您考慮加入這一工作的最佳時機。

  用於遊戲開發的Python

學習大數據分析python編程指南

  我們不會加糖,這是Python缺乏競爭的地方。儘管它具有用於遊戲開發的庫,例如PyGame和PyOpenGL,但它們經常證明不足以提供足夠的功能。儘管它通常對創建2D遊戲很有好處,但遊戲開發人員認為它比C#和C ++等編譯語言要慢。此外,它可能不是圖形選擇的最佳選擇,並且它不提供豐富的開發工具或編輯器。加上Python是高級解釋語言的事實,使得它對遊戲開發人員而言並不是那麼吸引人。

  儘管如此,由於在其中編寫代碼的速度很快,Python在原型設計方面非常有幫助。本質上,在決定是否在開發遊戲上投入時間和資源時,構建原型很有用–概念驗證。這就是Python發揮作用的地方,因為它能夠比其他語言更快地生成簡單的2D工作原型。

  此外,Python在在線遊戲社區中扮演著重要角色。在其幫助下開發的遊戲的顯著示例包括Civilization IV(使用Python進行邏輯和服務器控件),Eve Online(使用Stackless Python)和《坦克世界》(使用Python進行內部邏輯和腳本編寫)。最後,Snakeworlds – 3D蛇遊戲,將著名的經典遊戲放到球體/地球儀上。它完全用Python-Ogre編寫。

  1.3為什麼要學習Python?

  好的,這就是我們真正要涉足的地方。我們將開始回顧Python的許多核心方面,討論優點和缺點,並將其與其他編程語言進行比較。如果您渴望對Python功能有一些深入的瞭解,那麼您來對地方了。

  在開始之前,我們首先來看一個重要的但經常被誤解的區別:編碼不是編程。大多數人可以互換使用這些術語,坦率地說,這樣做很方便。但是,解釋它們背後的概念可以幫助初學者對編程產生更有益的態度。

  因此,簡單地說,編碼和編程之間的區別與為小說提出故事並將其寫在書中的區別相同。讓我們詳細說明。如果您想寫小說,問自己如何用英語寫小說不是第一步。您的重點應該放在創建具有所有要素的故事上。只有這樣,您才能以所需的任何語言將其整齊地寫出來。

  同樣的原理也適用於編程-這是一個分為兩個階段的過程。

  首先,您面臨一個問題(假設您必須找到城市之間的最短路徑)。

  然後,您必須想出一些步驟,才能在這些城市的每個初始圖形配置中為您提供正確的答案(我們將此稱為算法)。這是編程中最重要的階段,並且(主要)獨立於所使用的語言。但是一旦遇到問題,您就可以開始通過編程語言將指令傳達給計算機。那就是編碼階段。僅僅學習一種特定語言的代碼還不足以成為一名優秀的程序員。第一次學習編程時,您應該專注於解決問題的技術,而不是語言本身。

  話雖如此,不同的語言肯定會加速或減慢學習過程。我們認為Python是適合初學者進行編程的最佳語言之一。讓我們看看原因:

  Python是一種開源語言,這意味著它是免費使用的,每個人都可以為其代碼和庫的編寫和維護做出貢獻。確實,很多人,甚至公司,都花了很多時間和精力來擴展和完善Python。這是使該語言對社區如此吸引人的重要原因。

  此外,Python是一種高級通用語言。高級意味著它遠離0和1,因此更接近人類語言。因此,您不必擔心內存管理和刪除對象(以及其他問題)。這樣,您就可以完全專注於解決編程問題。這使Python成為從未學習過編程的人們的理想之選,因為它可以極大地改善他們的學習經驗。

  最後,通用性表明Python非常通用。如上所述,我們可以將其用於Web和軟件開發以及網絡編程。最重要的是,尤其是數據科學和機器學習在其日益找到應用的領域。因此,Facebook,Quora,Twitter,Spotify和Netflix等主要公司大量使用Python不足為奇。現在,儘管這些網站和平臺不是用 Python 編寫的,但許多支持過程,尤其是與分析有關的過程,都是用它來執行的。

  總體而言,Python在開發人員中的穩步增長。它確實受到了社區的歡迎,無論是前端還是後端用戶。憑藉其廣泛的功能,使用它的不僅是主要的公司。整個行業中,IT行業正在整合Python來開發各種產品。

  Python的優缺點是什麼?

學習大數據分析python編程指南

  那麼,使這種編程語言如此吸引人的關鍵方面是什麼?

  優點:

  a.易於學習 -關鍵字少,結構簡單,語法清晰。這使學生可以快速掌握語言。

  b.易於閱讀 –由於廣泛使用空格,因此可以更清晰地定義Python代碼。

  c.生產力 – Python代碼可以更快地編寫。

  d.交互模式 –支持允許交互測試和調試代碼段的交互模式。

  e.廣泛的標準庫 – Python以“包含電池”語言而聞名。有300多個標準庫模塊,其中包含用於各種編程任務的類。

  f.跨平臺 – Python在Windows,Linux,Mac OSX等不同的OS平臺上同樣能很好地工作。因此,它的應用程序可以輕鬆地跨OS平臺移植。

  g.可擴展 –您可以將低級模塊添加到Python解釋器。這些模塊使程序員能夠添加或自定義其工具,從而提高效率。

  h.可嵌入-Python也可嵌入。您可以將代碼放入其他語言的源代碼中,例如C ++。

  i.支持庫的廣泛集合 –有許多用於Python的庫,這些庫為語言增加了很多功能。

  缺點:

  a.速度限制 – Python被解釋,導致代碼執行緩慢。但是,這不是問題,除非速度是項目的重點。換句話說,除非需要高速,否則Python提供的好處足以超過其侷限性。

  b.移動技術薄弱 -儘管它已經出現在許多臺式機和服務器平臺上,但它被認為是移動計算的一種較弱的語言。這就是為什麼很少的移動應用程序使用它的原因。

  c.難以使用其他語言 -Python支持者已經非常習慣於其功能和豐富的庫,以至於在學習或使用其他編程語言時會遇到問題。通常,Python專家可能會看到變量類型的聲明以及添加花括號或分號作為一項繁重的任務的語法要求。

  靜態和動態打字

  在解釋Py​​thon的特性時,我們不能忘記提到它是一種動態類型的語言。簡而言之,Python中的變量沒有預定義的類型(例如整數或字符串)。而是在程序運行時動態確定變量的類型。例如,如果在某一時刻我們將值10分配給變量A,Python會自動確定此變量的類型為int(整數)。如果稍後將其更新為10.0,則它將為浮點數(實數)。

  相反,在像C ++這樣的靜態類型語言中,變量的類型寫在代碼本身中。因此,如果要使用A作為整數,請輸入“ int A”。現在,我們只能為A分配整數值。如果嘗試為A分配非整數值,程序將返回錯誤。

  當然,這兩個概念都有其優點和缺點。對於初學者來說,動態類型化的語言更容易掌握。但是,由於沒有人知道運行時之前的變量類型,因此可能會遇到難以跟蹤的意外錯誤。

  但是,讓我們避開這些有點抽象的比較,看看Python如何針​​對其他流行的編程語言進行度量。

  1.4Python與其他語言

  在本節中,我們將Python與其他編程語言進行比較:R,C ++和Java。閱讀後,您將可以決定哪種編程語言最適合您的實際需求。

學習大數據分析python編程指南

  Python vs R

  Python是一種腳本語言。從某種意義上說,它非常強大,只需執行幾行代碼就可以執行各種動作。您可以讀取,分析,可視化甚至預測巨大的數據集,所有這些僅需要幾行代碼。

  碰巧的是,R也是一種腳本語言。那麼兩者如何比較?儘管兩者都有優點和缺點,但是在最近幾年中,Python一直是程序員使用的主要語言。原因是什麼?好吧,有幾個。

  首先,儘管兩種語言都是免費和開源的,但我們使用R主要是用於統計分析(實際上是由統計學家開發的)。相比之下,Python是一種通用語言(這是該語言的重要功能,並且需要重複)。

  通用意味著它適合所有類型的需求;不僅是數據科學和機器學習,還包括預處理,Web編程以及幾乎所有您能想到的東西。

  Python的另一個優點是它是高級的。鬆散地解釋了它的語法,它很容易接近邏輯人類語言,後來又翻譯成低級語言(例如C)或什至0和1。例如,NumPy包實際上是通過編程語言C進行的。這解釋了為什麼它這麼快。

  讓我們談談關於R的最後一件小事。R中的圖形並不是最好的。但這是輕描淡寫。很多。實際上,圖形是如此糟糕,以至於R推出了專門針對該問題設計的R Shiny。我們喜歡Shiny,非常漂亮。就是說,儘管在某些情況下也可能缺少Python中的圖形,但最近在這方面進行了改進。在matplotlib頂部使用的Seaborn,絕對使圖形看起來比以前更好。

  Python與Java和C ++

  現在,我們強調了Python是一種腳本語言這一事實​​。儘管這是事實,但它並不能為我們提供全面的信息。

  儘管許多人主要使用Python運行腳本,但它也具有面向對象的功能,例如C ++和Java。就是說,我們發現使用Python學習編程比使用其他兩個編程要容易得多。

  為什麼,我聽到經驗豐富的C ++程序員在屏幕後面大喊?我們知道您是通過艱苦的方式學習編程的,並且對此感到非常滿意,因為一切都以超快的速度運行,並且不再有那麼多的內存洩漏。而且,只要您確切知道自己在做什麼,代碼就可以運行,對嗎?(是的,本文的作者也喜歡C ++。)

  好吧,讓我們扮演魔鬼的擁護者,並認為可能有一種更輕鬆,更直觀的方法來學習編程基礎。

  首先考慮:Java。許多程序員的第一語言。

  Java具有對象和類,這是初學者很難理解的概念。從個人經驗來看,這可能涉及您父親漫長的夏天大喊:“類和對象之間有什麼區別?!”,然後您試圖找出正確的答案。記錄下來,答案是–對象是類的實例。這使事情更清楚了嗎?是的,這就是我們的想法。理解這些概念需要花費一些時間。如果您是初學者,則用Java編寫和運行代碼可能會花費更長的時間。簡而言之,這就是Java(確實是一個很小的概括,但是您知道了)。

  C ++是“真正的”程序員語言呢?

  它的座右銘是“您得到所要付出的代價”(但也許不要在那句話上引用我們)。在C ++中,您負責處理內存,即對象的創建和刪除。此外,訪問內存中那些對象的方式是通過指針,指針可以具有自己的指針,而指針又可以具有自己的指針……您可以得到point(er)。C ++也不太適合初學者。

  讓我們將它們與Python編程進行比較。但是,就像非常簡單的編程一樣。(想象)您是一個完全的新手,想編寫您的第一個程序。對於每個程序員,無論使用哪種語言,都意味著編寫您的第一個“ Hello,World”。

  因此,這就是代碼在Java中的外觀:

學習大數據分析python編程指南

  這是在C ++中:

學習大數據分析python編程指南

  現在,讓我們看一下Python:

學習大數據分析python編程指南

  設置環境並打開腳本文件後,使用Python編寫“ hello world”只需要一個簡單的print()函數和您的文本。在Python 2中,您甚至不需要括號!確實沒有比這更簡單的了。這是我們一開始所討論的可讀性因素。這也是為什麼我們比其他編程語言更喜歡Python的原因。順便說一句,如果您發現此分析有用,請考慮與其他編碼人員朋友共享本文。Python社區很棒是它很棒的原因之一,所以讓我們幫助它變得更大。

  1.5Python難學嗎?

  簡短的答案:這取決於。但這不是您想要的答案,對嗎?不用擔心,在開始學習Python之前,我們將解釋您需要了解的所有內容。從...開始…

  學習Python多長時間?

  對於一個完整的新手來說,學習如何很好地使用Python進行編程大約需要3個月的相對一致的學習(基於我們自己的估計)。

  但是,如果您打算將Python用於數據科學(即數據分析或機器學習),則時間軸實際上會更短。由於數據科學需要非常特定的語言使用方法,因此需要花一個月到兩個月的時間才能理解基礎知識。完全披露信息是基於我們的學生完成我們自己的數據科學培訓的速度。在365數據科學計劃大約需要200個小時才能完成。除其他主題外,它還包括數學,統計學和Python的基礎知識。它還介紹了更高級的主題,例如使用sklearn,numpy和pandas進行機器學習,並使用用於神經網絡的TensorFlow(版本1和2)庫涵蓋了深度學習。因此,如果您真正致力於並每天花五個小時學習,那麼大約需要一個月的時間來學習Python數據科學分析的主要原理。

  也就是說,您精通Python或任何編程語言所花費的時間取決於……嗯,您。

  不同的人以不同的速度學習。您學習Python的能力還取決於您的編程背景。如果您已經精通某種編程語言,那麼熟悉Python可能會涉及到習慣於不同的庫。

  但是,如果您從未編程過該怎麼辦?好吧,這實際上可能是一個優勢。我們認為,使用Python這樣的語言來學習編程的基礎要容易得多。

  1.6工作展望

  Python的工作前景如何?

  要說Python的工作前景是積極的,則輕描淡寫。隨著它的受歡迎程度不斷提高,對Python作為僱主首選技能的需求猛增。

  實際上,電氣和電子工程師協會(IEEE-世界上最大的技術進步專業技術組織)認為Python是2019年的“大卡胡納語”,在其年度互動十大編程中排名第一。語言。

  但是Python不僅是粉絲的最愛-這是CEO想要的。

  根據StackOverFlow開發人員調查(全球90,000名開發人員參與),它是2019年增長最快的主要編程語言。Python(41.7%)在整體排名中甚至領先Java(41.1%),並且仍然是最受歡迎的語言開發者(25.7%)連續第三年!調查還顯示,與使用C,C ++和Java等語言的開發人員($ 50,000-$ 60,000)相比,使用Python的開發人員的薪水更高($ 60,000- $ 70,000)。

學習大數據分析python編程指南

  這如何轉化為Python的工作機會?

  讓我們深入研究數字。

  Python工作需求量很大嗎?

  絕對。Python是全球薪水最高的語言,薪水中位數為63,000美元。通用語言已在數據科學工作中廣泛使用。該報告基於美國最大的工作網站–Indeed.com的數據。他們將強調某些軟件熟練程度的職位發佈數量進行了統計,發現Python排名第二的是27,374個職位,緊隨其後的是SQL的25,877個職位。根據記錄,Java和C分別位於17,000和13,000的工作列表中。同比增長呢?從2017年到現在(2019年),Python再一次成為無可爭議的冠軍,增長了97%。

  從中國的前景來看,那裡的就業市場也相當健康。

  據ITJobsWatch摘要統計報告,過去6個月中,已有16,004個永久工作被Python引用,年薪中位數為61,242英鎊。與2017年同期相比,漲幅為11.16%。

  但是僱主怎麼說呢?Python是使用高級分析進行業務和產品開發的組織中排名第一的編程語言。調查的回應來自500家公司的中層管理人員,高級管理人員和執行層管理人員。

  因此,就僱主在尋找什麼而言,Python似乎已接近統治地位。就是說,現在該是我們調查那裡最令人垂涎​​的Python工作角色的時候了。

  您可以採用Python的哪些職業道路?

  精通Python是技術和數據科學職業領域不可或缺的技能之一。這是Python專家可以遵循的一些最有利可圖的職業道路。

  Python開發人員

  對於精通Python的人來說,最明顯的選擇。Python開發人員將其用於各種任務,從構建網站和優化數據算法到查找數據分析解決方案以及執行安全性和數據保護。更不用說這種編程語言非常適合編寫可測試,可重用和令人難以置信的高效代碼。

  機器學習工程師

  Python的專業知識是機器學習工程師的關鍵要求之一。機器學習涉及連續的數據處理,Python強大的庫生態系統無疑是應對挑戰的基礎。難怪機器學習工程師會首選Python庫來訪問和轉換數據,以及處理諸如聚類,迴歸和分類之類的基本ML算法。

  數據科學家

  Python是動手進行統計建模的首選語言。大約68%的數據科學家表示這是他們最喜歡的編程語言(去年為44%)。而且,如果您到目前為止一直在關注,那麼在機器學習方面,Python也是必不可少的。

  數據分析師

  Python是處理大量數據,清理它並處理它以進行分析的最好的語言之一,而這正是數據分析師所做的很多事情。與其他更復雜的工具相比,Python可以幫助他們更快地完成所有工作。數據分析師還使用Python及其軟件包將其數據分析任務與Web應用程序集成在一起,或將統計代碼合併到生產數據庫中。

  BI分析師

  對於BI分析師而言,Python 不是絕對必須的。但是,在商業智能領域,它變得越來越受歡迎。BI分析師是核心的多任務處理者。這樣,他們可以將Python用於各種商業智能任務。他們可以通過將其導入數據庫程序,對其進行清理和標準化來使用它來準備數據。此外,BI分析師可以通過從查詢創建Pandas DataFrame,製作數據質量報告,生成摘要統計信息以及創建圖表來探索數據。最後,Python可以協助BI分析師進行數據分析和分析,因此他們可以可視化並報告其見解,以制定明智的業務決策。

  數據工程師

  Python的豐富庫可幫助數據工程師訪問數據庫和存儲技術。此外,數據工程師使用它來編碼ETL框架以及API交互和自動化。總體而言,Python是功能強大且用途廣泛的工具,可讓數據工程師快速,高效地解決問題。

  數據架構師

  數據架構師開發高級Python腳本,以分析,清理和轉換大型數據集,並準備將其用於商業智能,分析和財務建模功能。

  作者的註釋:Python對於獲得數據科學工作至關重要。但是,這只是您想要在現場獲得的技能之一。

  使用Python的熱門行業是哪些?

  根據ActiveState的十大用例,以下是使用Python 的十大行業:

  a.保險;

  b.零售銀行;

  c.航天;

  d.金融;

  e.商業服務;

  f.硬件;

  g.衛生保健;

  h.諮詢服務;

  i.信息技術

  j.軟件。

  二、Python入門

  如果您已經決定開始學習Python但不知道從哪裡開始,那麼這裡就是您的理想選擇。入門可能很困難。您應該下載Python 2.7,還是要下載Python 3.6?因此,在本節中,我們彙總了大量信息和實用技巧,可幫助您找到自己的出路。我們將概述Python 2和Python 3之間的區別,並指導您完成安裝過程。然後,我們將回顧最佳的Python庫和IDE及其用例。此外,在這裡您將發現開始學習Python的可行步驟,以及可以使用的良好免費資源列表。最後,我們將向您展示如何從經驗豐富的Python用戶那裡尋求幫助。但首先要注意的是:

  2.1要學習哪個Python版本?

  如果您嘗試下載Python,您可能會對兩個同樣重要的版本2.7和3.7(在撰寫本文時)感到驚訝。因此,現在您可能想知道:我應該學習Python 2還是學習Python 3?

  過去,編碼社區一直在爭論哪個版本是最好的學習版本。但這已經發生了變化,現在變得或多或少了:Python 3無疑是贏家。我們將探討原因,但首先讓我們看一下這些版本的歷史。

  Python 2.0於2000年首次發佈,其最終的主要版本Python 2.7於2010年問世。

  但是,這還沒有結束,因為直到今天仍可得到持續的支持。但是,開發人員很早就意識到他們需要進行重大更改以改進語言。因此,在2008年12月,Python發佈了3.0版。這個版本主要是為了解決Python 2中存在的問題而開發的。但是這些更改的性質使得Python 3最終與Python 2不兼容!因此,對於使用Python 2.x版本的任何組織,將其項目遷移到3.x都需要大量的調整和工作。因此,許多公司決定繼續使用版本2併為其開發更多庫。因此,繼續支持Python 2。

  但是萬事必須最終結束。

  因此,開發人員宣佈2020年1月1日將是Python 2淘汰的日子。在此日期之後,將不再對此版本進行更新和支持,並且使用此版本的每個人都必須儘快切換到Python 3。這不是操練- 時鐘確實在滴答作響。

  因此,Python 3是未來的明確方向,也是每個初學者都應該選擇的版本。但是,如果您的公司有用Python 2編寫的項目,或者也許您必須使用僅受Python 2支持的第三方庫,則可能需要了解兩個版本之間的區別。這裡有一些人(也有從很多地方,從來到),讓你開始:

學習大數據分析python編程指南

  2.2如何安裝Python?

  Python可與Windows,Linux,Mac OS和某些其他平臺(例如IBM AS / 400,iOS,Solaris等)一起使用。並且有多種方法可以在計算機上安裝它。

  開箱即用地向Python添加功能的一種簡單方法是通過Anaconda發行版,這對(數據)科學家而言尤其重要。它包括庫存的Python以及對科學家和機器學習至關重要的庫,例如NumPy,SciPy,Pandas(請參閱第2.4節)。不僅如此,它還配備了兩個IDE(請參閱下一節2.3)– Spyder和Jupyter Notebook。另外,它非常容易安裝-只需選擇您的操作系統,然後點擊下載即可。然後,剩下要做的就是完成基於嚮導的設置,您就可以開始了。

  你可以,當然,選擇Python的軟件在python.org/downloads標準分佈在這裡。只是不要忘記在設置中選中“將Python 3.x添加到PATH”複選框。

學習大數據分析python編程指南

  2.3。哪些是最適合Python開發的IDE?

  到目前為止,一切都很好。您已經安裝了Python,但是現在您需要在某個地方編寫代碼並運行它。這就是IDE的用武之地。

  首先,讓我們弄清楚IDE的含義。IDE代表集成開發環境。它是一種編碼工具,可讓您以更輕鬆的方式編寫,測試和調試代碼,因為它們通常通過突出顯示,資源管理,調試工具等提供代碼完成或代碼洞察力。

  那麼,什麼是最好的Python IDE?好吧,這取決於您的喜好以及使用這種編程語言的原因。考慮到這一點,在這裡我們將介紹一些最受歡迎的(截至撰寫本文時),以便您可以做出明智的決定。

  適用於科學和數據分析的Python IDE

  斯派德

學習大數據分析python編程指南

  Spyder是一種輕量級的開源IDE,專門為科學和數據分析使用而設計和構建。如果您從未使用過IDE,那麼它可能是一個完美的第一站,因為學習過程很順利。

  Spyder包括在Anaconda發行版中,以及數據科學和機器學習必不可少的庫-NumPy,SciPy,Pandas,scikit-learn,Matplotlib等。而且,就安裝而言,通過Anaconda進行安裝是更可取的方法。

  Spyder包含您可能期望的大多數常見IDE功能,例如具有健壯的語法突出顯示功能的代碼編輯器,代碼完成功能,甚至是集成的文檔瀏覽器。

  此外,它還具有幾個非常有用的功能-圖形變量瀏覽器和IPython(交互式Python)控制檯。

  變量資源管理器包含程序中的所有數據(變量),並在IDE內部使用基於表的佈局顯示它。這使您可以快速地進行交互和修改,單擊直方圖和時間序列,對集合進行排序等等。

  您可能會發現有趣的另一件事是,IPython控制檯允許初學者和數據科學家執行一行代碼並可視化數據,從而使他們受益匪淺。對於教育目的和調試而言,這都是很棒的。

  從本質上講,Spyder非常適合初學者和專業人士,但我們意識到,有些退伍軍人可能會覺得它太基礎了,缺乏某些更高級的功能。

  Jupyter筆記本

學習大數據分析python編程指南

  Jupyter Notebook 於2014 年從IPython誕生,它是一個基於服務器-客戶端結構的Web應用程序,它使您可以創建和操作Notebook文檔或“筆記本”。

  Jupyter為您提供了一種跨多種編程語言的易於使用的交互式數據科學環境,該環境不僅可以用作IDE,還可以用作演示或教育工具。對於剛開始使用數據科學的人來說,它是完美的選擇!

  Jupyter Notebook支持降價促銷,因此允許您在代碼行之間添加文本和其他HTML組件,例如圖像和視頻。感謝Jupyter,您可以輕鬆地查看和編輯代碼,以創建引人入勝的演示文稿。例如,您可以使用Matplotlib和Seaborn等數據可視化庫,並在代碼所在的同一文檔中顯示圖形。此外,您可以將最終作品導出為PDF和HTML文件,或僅將其導出為.py文件。

  通用Python IDE

  PyCharm

學習大數據分析python編程指南

  PyCharm是一個完整的IDE,適用於Web開發,小型和大型項目。它是由JetBrains(一家以創建出色的軟件開發工具而聞名的公司)的員工開發的,面向專業開發人員的IDE 。如果您已經使用過JetBrains的另一個IDE,因為它的界面和功能都非常相似,那麼它對您來說是完美的。

  另外,如果您喜歡IPython或Anaconda發行版,很高興知道PyCharm集成了他們的工具和庫,例如NumPy和Matplotlib。這樣一來,您就可以使用數組查看器和交互式繪圖。

  好了,就安裝而言,有兩種版本的PyCharm供您考慮:

  a.社區 –免費的開源版本,輕量級,適合Python和科學開發;

  b.專業版 –付費版本(每年53歐元,兩年後),功能齊全的IDE,也支持Web開發。

  PyCharm的一個缺點是它可能非常繁重且佔用大量資源。因此,對於具有少量RAM(通常小於4GB)的計算機,它可能不是最佳選擇,因為它會滯後。

  除此之外,PyCharm還提供了優秀的IDE應該提供的所有主要功能。此外,它是完全可定製的,並且具有大量用於附加功能的插件。

  Visual Studio代碼(VSCode)

學習大數據分析python編程指南

  VSCode是一個輕量級但功能強大的開源編輯器,可在任何平臺(Windows,Mac,Linux)上訪問。它具有豐富的內置編程語言支持和擴展生態系統。該編輯器每月更新一次,其中包含新功能和錯誤修復。這以及為各種用例創建有用插件的活躍社區,使VSCode在Python開發中成為程序員的最愛。

  那麼,您從擴展中得到什麼?

  a.使用IntelliSense自動完成;

  b.棉絨;

  c.代碼格式化;

  d.腳本調試;

  e.單元測試;

  f.自動激活並在Python環境之間輕鬆切換;

  j.重構命令。

  除了編程語言功能外,VSCode擴展還包括其他方便的功能,例如鍵盤映射,UI主題和語言包。擴展程序和主題的安裝非常容易且易於訪問。因此,是的,一旦開始使用Python,您一定應該將此IDE放在您的雷達上。

  原子

學習大數據分析python編程指南

  Atom是由GitHub開發的開源代碼編輯器(不是完整的IDE),可用於Python開發。它是高度可定製的,使您有機會根據需要安裝軟件包並根據需要更改UI。

  Atom易於使用且易於學習。它提供了對GitHub的大力支持。除此之外,您還可以在Atom本身中可視化結果,而無需打開任何其他窗口或窗格。此外,您還有一個名為“ Markdown Preview Plus”的插件。它為您提供了編輯和可視化Markdown文件的內置支持,允許您打開預覽,渲染LaTeX方程式等等!

  榮譽獎

  a.Eclipse + PyDev – Eclipse是非常流行的IDE,主要用於Java代碼。但是,可以使用插件PyDev為Python配置它。

  b.it(Online Compiler) –如果您想開始編寫Python代碼而不花時間安裝Python和設置開發環境,則可以使用repl.it。該站點提供了多種語言的在線IDE,包括在線Python Shell。您只需要互聯網連接和瀏覽器即可上手。

  c.Thonny – Thonny是Python IDE系列的最新成員,被稱為初學者的IDE。它由愛沙尼亞塔爾圖大學計算機科學研究所編寫和維護,是專門為教學和學習編程(特別是Python)而設計的。默認情況下,Thonny帶有自己的捆綁版本的Python,因此您無需安裝其他任何東西。它的用戶界面非常簡單,因此初學者會發現使用起來很容易。此外,它還具有一個簡單的調試器,可讓您逐步執行程序,並使您能夠查看Python如何在內部評估書面表達式。

  總體而言,Thonny的目的是使您充分了解Python的工作原理,而這正是它所提供的。

  2.4。哪些頂級Python庫和框架?

  Python庫包含各種工具來幫助我們進行編程。我們可能會遇到一個難以解決的問題,但有可能其他人在我們之前遇到了該問題,並編寫了處理該問題的代碼。該代碼可能在某個庫中的某個位置,等待我們使用它。Python有許多不同的庫,但是在這裡,我們將僅列出我們認為您可能需要使用的庫。

  Python標準庫

  這是Python本身附帶的庫。它非常廣泛,提供了各種各樣的功能,您可以在文檔中查看。該庫包含內置模塊(用C編寫)。它們提供對系統功能的訪問,例如文件I / O(否則Python程序員將無法訪問)。它還為使用Python編寫的模塊打開了大門,這些模塊為許多常見的編程問題提供了標準化的解決方案。其中一些模塊經過明確設計,旨在通過將特定於平臺的內容抽象到與平臺無關的API中來鼓勵和增強Python程序的可移植性。

  用於機器學習,科學使用和數據分析的Python庫

  如前所述,Python被廣泛用於數據分析和科學模擬。在某種程度上,它之所以受歡迎,是因為您可以選擇各種各樣的庫。以下是Top Data Science聯合創始人兼AI負責人Oguzhan Gencoglu所說的話:“我們主要在Python中進行開發, 而numpy,scipy和pandas 等科學庫 至關重要。對於傳統的 ML,我們使用 scikit-learn / xgboost / GPy。繼續列出, nltk 和 gensim 對於我們的NLP項目至關重要。自然地,對於深度學習,我們在Keras / TensorFlow中進行原型製作如果是工業協作,則 在TensorFlow中進行部署 。我們還將 PyTorch用於研究合作。”

  也就是說,這是一些最重要的Python庫的列表:

  a.NumPy

  NumPy是一個非常重要的用於數值計算的庫,也是許多其他更高級庫的基礎。它提供了廣泛的N維數組接口和線性代數函數,這些函數比普通的Python列表要快幾個數量級,並且存儲效率更高。這就是為什麼它對於仿真和機器學習至關重要。

  NumPy是Anaconda軟件包的一部分。

  b.科學

  Scientific Python(SciPy)庫是創建用於執行復雜數學分析的算法的庫。它使用NumPy數組作為其基本數據結構(因此很快速),並且可以執行諸如積分,求解常微分方程,信號處理和優化之類的任務。

  Anaconda軟件包提供了SciPy。

  c.Matplotlib

  Matplotlib是一個用於創建圖表,圖形和其他數據可視表示的庫。對於任何數據科學家或數據分析儀而言,這都是至關重要的。

  Matplotlib也是Anaconda軟件包的一部分。

  d.TensorFlow

  TensorFlow是由Google Brain團隊開發的開源機器學習庫,並於2015年向公眾發佈。幾乎所有用於機器學習的Google應用程序都使用TensorFlow。TensorFlow的應用程序數量是無限的,這就是它的美。它針對速度進行了優化,非常靈活,可以在CPU和GPU上運行。它還具有出色的可視化工具。TensorFlow是Anaconda軟件包的一部分,不包括自動安裝-它需要手動安裝。這可以通過打開anaconda提示符並鍵入“ conda install tensorflow”來完成。

  e.Scikit學習

  Scikit-learn(或簡稱為sk-learn)是與NumPy和SciPy相關的Python庫。它被認為是處理複雜數據的最佳庫之一,因為它包含許多用於實現標準機器學習和數據挖掘任務的算法,例如減少維數,分類,迴歸,聚類和模型選擇。

  Scikit-learn是Anaconda軟件包的一部分。

  f.大熊貓

  Pandas是一個數據分析庫,它提供高級數據結構和各種用於操縱它們的工具。該庫的主要功能之一是能夠使用一個或兩個命令轉換具有數據的複雜操作。Pandas具有許多用於分組,合併數據和過濾以及時間序列功能的內置方法。

  熊貓是Anaconda軟件包的一部分。

  g.火炬

  PyTorch是另一個開源機器學習庫,它使開發人員能夠在GPU加速的情況下執行張量計算,創建動態計算圖並自動計算梯度。它於2017年推出,自成立以來,該庫越來越受歡迎並吸引了越來越多的機器學習開發人員。儘管PyTorch相對來說還很年輕,並且沒有TensorFlow驚人的可視化技術,但它與TensorFlow有著直接的競爭。

  PyTorch是Anaconda軟件包的一部分,但它需要手動安裝-打開anaconda提示符並輸入“ conda install pytorch -c pytorch”。

  h.凱拉斯

  Keras提供了一種表達神經網絡的簡便機制,以及一些用於編譯模型,處理數據集,圖形可視化等的最佳實用程序。它注重於用戶友好,模塊化和可擴展性,但卻犧牲了速度。

  Keras是深度學習研究人員的最愛,排名第二。大型科學組織(尤其是CERN和NASA)的研究人員也採用了此方法。

  Keras不是Anaconda軟件包的一部分。

  Python GUI庫

  GUI(圖形用戶界面)庫允許程序員創建令人眼花applications亂的應用程序。Python是一種交互式語言,因此開始編寫GUI框架並不是一件難事。實際上,Python在該領域有多種選擇:

  a.Tkinter

  Tkinter通常使用Tk與Python捆綁在一起,並且是Python的標準GUI框架。它以其簡單性和圖形用戶界面而受歡迎。它是開源的,可在Python許可下獲得。選擇Tkinter的優點之一是,由於它是默認設置,因此有大量資源,包括代碼和參考書。

  b.wxPython

  WxPython是跨平臺GUI庫WxWidgets(以前稱為WxWindows)的開源包裝,並實現為Python擴展模塊。使用WxPython,您作為開發人員可以為Windows,Mac OS和Unix創建本機應用程序。

  c.PyQT

  PyQT是實現Qt(由諾基亞擁有)應用程序開發框架的Qt庫的最受歡迎的跨平臺Python綁定之一。目前,PyQT可用於Unix / Linux,Windows,Mac OS X和Sharp Zaurus。它結合了Python和Qt的優點。然後由程序員決定是通過編碼還是使用Qt Designer創建可視對話框來創建程序。它既有商業許可,也有GPL許可。儘管某些功能可能在免費版本中不可用,但是如果您的應用程序是開源的,則可以在免費許可證下使用它。

  d.PyGUI的

  PyGUI是用於Unix,Macintosh和Windows的圖形應用程序跨平臺框架。與其他一些GUI框架相比,PyGUI到目前為止是所有框架中最簡單,最輕便的,因為API完全與Python同步。PyGUI在GUI平臺和Python應用程序之間插入的代碼要少得多,因此,應用程序的顯示通常會顯示平臺的自然GUI。

  用於Web開發的Python框架

  考慮到動態Web開發的發展方式,Python框架的普及似乎僅在增加。這種面向對象,功能強大的組成,解釋和交互式編程語言非常易於學習。而且,它易於閱讀的語法和簡單的編譯功能有效地縮短了開發時間。

  Python為開發人員提供了廣泛的工具。下面列出了一些流行的Web框架:

  a.Django的

  Django是一個免費的開源框架,使開發人員能夠有效,快速地開發複雜的代碼和應用程​​序。這個高級框架通過提供各種強大功能來簡化Web應用程序開發。它具有各種各樣的庫,強調了有效性,對編碼的需求減少以及組件的可重用性。

  b.櫻桃皮

  CherryPy是一個開放源代碼的Python Web開發框架,它植入了自己的多鏈服務器。它可以繼續在任何支持Python的工作框架上運行。CherryPy功能集成了線程池化的Web服務器,設置框架和模塊框架。適度的Web框架使您可以利用各種技術進行數據訪問,模板化等。然而,它可以完成Web框架可以執行的所有工作,例如,處理會話,靜態,文件上傳,Cookie等。

  c.金字塔

  金字塔是支撐驗證和指導的框架。對於像CMS這樣的大型Web應用程序而言,這是不可思議的,對於原型創意和開發人員放棄API項目而言,這是非常有價值的。金字塔適應性強,可用於容易和困難的項目。金字塔的功能得到增強,而無需驅動特定的完成方法,輕巧而又不會隨著應用程序的開發而獨自一人。由於它的透明性和可衡量的質量,它是經驗豐富的Python開發人員中最有價值的Web框架。中等規模的團隊和Mozilla,Yelp,Dropbox和SurveyMonkey等技術巨頭都在使用它。

  d.燒瓶

  Flask是受BSD許可訪問的Python框架,該框架受Sinatra Ruby框架的啟發。其主要目的是幫助開發強大的Web應用程序基礎。開發人員可以根據需要創建任何後端框架,但是該框架是為開放式應用程序設計的。Flask已被包括LinkedIn和Pinterest在內的大公司使用。與Django相比,Flask最適合小型和簡單的項目。因此,您可以期待Web服務器的開發,對Google App Engine的支持以及內置的單元測試。

  e.瓶子

  另一個有趣的Python Web框架是Bottle,它屬於小型框架。最初,它是為構建Web API而開發的。而且,Bottle嘗試在單個文檔中執行所有操作,這應該使您對設計的文檔大小有一個簡短的瞭解。開箱即用的功能包括模板,實用程序,定向以及對WSGI標準的一些基本抽象。與Flask一樣,與全棧框架相比,您將更接近金屬。無論如何,Netflix都使用Bottle來創建Web界面。

  2.5。從哪兒開始?

  免責聲明:在本節中,您將學習關於編程的寶貴課程。

  您現在可能知道將來的項目需要哪些庫。很好,但是您仍然需要學習如何使用Python進行編碼。而且,大概是在本節中,您希望我們為您提供有關開始哪些教程或選擇哪些教科書的信息。

  很遺憾地通知您,這是您在掌握Python(或就此而言,其他任何編程語言)的過程中第一次感到失望。並不是沒有很好的免費教程-那裡有很多免費教程,其中有些絕對是很棒的。

  不幸的是,無論教程多麼出色,它都不可避免地會遺漏一些東西,否則您將得到其中未描述的錯誤。然後怎樣呢?那麼,解決方案是使用您可以使用的最重要的工具-Internet進行簽入。問題是,在編程過程中,大多數學習過程可能會通過Google進行。程序員必須具備在線查找重要信息的能力。因此,這就是為什麼我們現在鼓勵您自己查找有關Python的資源。嗯...我聽到絕望的聲音了嗎?

  好吧,我們不會完全讓您使用自己的設備。您可以採取以下一些可行的步驟來開始使用Python。

  如何學習Python?

  教科書

  書籍是在旅途中獲得有關Python編程的詳細知識的好方法。但是,那裡有哪些最好的Python書籍?當然,市場上有很多Python編程教科書。但是,您還應該考慮以下可供初學者免費使用的電子書:

  在線課程

  免費在線課程以學習Python

  如果您喜歡靈活的學習時間表並選擇自己的學習環境,那麼當然可以使用在線課程。並且,探索免費的學習選擇是一個不錯的初始選擇。尤其是如果您是一個完整的初學者,但不是100%不確定要準備深入學習Python。學習大數據分析python編程指南https://www.aaa-cg.com.cn/data/2271.html因此,您可以從這裡開始10 堂免費的在線Python課程。當然,它們不像某些付費課程或完整課程那樣全面。但是它們足夠好,可以為您提供基本的Python入門。

  視頻網站

  藉助Python視頻教程,從視頻網站上尋找資源,也是一個不錯的選擇。

  綜上所述,沒有唯一的“學習Python的最佳方法”。實際上,對於不同的技能水平,可以採取許多不同的方向。因此,最好嘗試其中的一些(或全部)方法,然後查看對您有用的方法。

  學習Python時如何尋求幫助?

  隨著您開始編寫更復雜的代碼,遇到一些困難或遇到錯誤是正常的。有時可能會感到沮喪,但請記住,它通常是學習曲線和編程的一部分。

  所以,不用擔心。畢竟,網上有一個很棒的社區,當您遇到困難時,您可以要求指導。或者,您可以通過與其他程序員分享您的見解來幫助他們。結論

  希望我能告訴您,一旦您閱讀了本文,您將在一夜之間精通Python。但現實是,您不會。將會有很多反覆試驗……然後更多。

  我認為,通常作為學習者,我們感到需要證明我們可以超快無誤地完成工作,而這幾乎完全來自於我們追求完美的內在壓力。因此,如果有最後一條建議值得采納,那就是-繼續練習。進行必要的工作,不要因過程中的困難而灰心。或者,引用Patrick McKenzie的話,

  您認識的每一個偉大的開發人員都可以通過解決問題來解決問題,直到他們真正解決問題為止。

  這就是本文的最終目的。我們希望本概述將成為您學習中值得信賴的伴侶。而且,本著開源編程語言的精神,如果您喜歡它並且發現它很有用,請花一點時間並分享它,以便其他人也可以學習和進步!

相關推薦


分享到:


相關文章: