首頁>Club>
5
回覆列表
  • 1 # 變餅檔

    從入門級選手到專業級選手都在做的——爬蟲

    用 Python 寫爬蟲的教程網上一抓一大把,據我所知很多初學 Python 的人都是使用它編寫爬蟲程式。小到抓取一個小黃圖網站,大到一個網際網路公司的商業應用。透過 Python 入門爬蟲比較簡單易學,不需要在一開始掌握太多太基礎太底層的知識就可以很快上手,而且很快可以做出成果,非常適合小白一開始想做出點看得見的東西的成就感。

    除了入門,爬蟲也被廣泛應用到一些需要資料的公司、平臺和組織,透過抓取網際網路上的公開資料,來實現一些商業價值是非常常見的做法。當然這些選手的爬蟲就要厲害的多了,需要處理包括路由、儲存、分散式計算等很多問題,與小白的抓黃圖小程式,複雜度差了很多倍。

    Web 程式

    除了爬蟲,Python 也廣泛應用到了 Web 端程式,比如你現在正在使用的知乎,主站後臺就是基於 Python 的 tornado 框架,豆瓣的後臺也是基於 Python。除了 tornado (Tornado Web Server),Python 常用的 Web 框架還有 Flask(Welcome | Flask (A Python Microframework)),Django (The Web framework for perfectionists with deadlines) 等等。透過上述框架,你可以很方便實現一個 Web 程式,比如我認識的一些朋友,就透過 Python 自己編寫了自己的部落格程式,包括之前的 zhihu.photo,我就是透過 Flask 實現的後臺(出於版權等原因,我已經停掉了這個網站)。除了上述框架,你也可以嘗試自己實現一個 Web 框架。

    桌面程式

    Python 也有很多 UI 庫,你可以很方便地完成一個 GUI 程式(話說我最開始接觸程式設計的時候,就覺得寫 GUI 好炫酷,不過搞了好久才在 VC6 搞出一個小程式,後來又輾轉 Delphi、Java等,最後接觸到 Python 的時候,我對 GUI 已經不感興趣了)。Python 實現 GUI 的例項也不少,包括大名鼎鼎的 Dropbox,就是 Python 實現的伺服器端和客戶端程式。

    人工智慧(AI)與機器學習

    人工智慧是現在非常火的一個方向,AI熱潮讓Python語言的未來充滿了無限的潛力。現在釋放出來的幾個非常有影響力的AI框架,大多是Python的實現,為什麼呢?因為Python足夠動態、具有足夠效能,這是AI技術所需要的技術特點。比如基於Python的深度學習庫、深度學習方向、機器學習方向、自然語言處理方向的一些網站基本都是透過Python來實現的。

    機器學習,尤其是現在火爆的深度學習,其工具框架大都提供了Python介面。Python在科學計算領域一直有著較好的聲譽,其簡潔清晰的語法以及豐富的計算工具,深受此領域開發者喜愛。

    早在深度學習以及Tensorflow等框架流行之前,Python中即有scikit-learn,能夠很方便地完成幾乎所有機器學習模型,從經典資料集下載到構建模型只需要簡單的幾行程式碼。配合Pandas、matplotlib等工具,能很簡單地進行調整。

    而Tensorflow、PyTorch、MXNet、Keras等深度學習框架更是極大地拓展了機器學習的可能。使用Keras編寫一個手寫數字識別的深度學習網路僅僅需要寥寥數十行程式碼,即可藉助底層實現,方便地呼叫包括GPU在內的大量資源完成工作。

    值得一提的是,無論什麼框架,Python只是作為前端描述用的語言,實際計算則是透過底層的C/C++實現。由於Python能很方便地引入和使用C/C++專案和庫,從而實現功能和效能上的擴充套件,這樣的大規模計算中,讓開發者更關注邏輯於資料本身,而從記憶體分配等繁雜工作中解放出來,是Python被廣泛應用到機器學習領域的重要原因。

    科學計算

    Python 的開發效率很高,效能要求較高的模組可以用 C 改寫,Python 呼叫。同時,Python 可以更高層次的抽象問題,所以在科學計算領域也非常熱門。包括 scipy、numpy 等用於科學計算的第三方庫的出現,更是方便了又一定數學基礎,但是計算機基礎一般的朋友。

  • 2 # WEB開發李家靖

    我是老李,我來回答你的問題Python現在幾乎是全民學習的狀態了,小到小學教材,大到高中大學,都用對應的教材和考試。為什麼學Python?因為Python簡單、入門快。首先說你問的,Python有什麼用途?我發現有Python主要有以下五大主要用途:一、Web開發Python的誕生歷史比Web還要早,由於Python是一種解釋型的指令碼語言,開發效率高,所以非常適合用來做Web開發。Python有上百種Web開發框架,有很多成熟的模板技術,選擇Python開發Web應用,不但開發效率高,而且執行速度快。常用的web開發框架有:Django、Flask、Tornado 等。許多知名的網際網路企業將python作為主要開發語言:豆瓣、知乎、果殼網、Google、NASA、YouTube、Facebook……由於後臺伺服器的通用性,除了狹義的網站之外,很多App和遊戲的伺服器端也同樣用 Python實現。二、網路爬蟲許多人對程式設計的熱情始於好奇,終於停滯。距離真槍實幹做開發有技術差距,也無人指點提帶,也不知當下水平能幹嘛?就在這樣的疑惑迴圈中,程式設計技能止步不前,而爬蟲是最好的進階方向之一。網路爬蟲是Python比較常用的一個場景,國際上,google在早期大量地使用Python語言作為網路爬蟲的基礎,帶動了整個Python語言的應用發展。以前國內很多人用採集器搜刮網上的內容,現在用Python收集網上的資訊比以前容易很多了,如:從各大網站爬取商品折扣資訊,比較獲取最優選擇;對社交網路上發言進行收集分類,生成情緒地圖,分析語言習慣;爬取網易雲音樂某一類歌曲的所有評論,生成詞雲;按條件篩選獲得豆瓣的電影書籍資訊並生成表格……應用實在太多,幾乎每個人學習爬蟲之後都能夠透過爬蟲去做一些好玩有趣有用的事。三、人工智慧人工智慧是現在非常火的一個方向,AI熱潮讓Python語言的未來充滿了無限的潛力。現在釋放出來的幾個非常有影響力的AI框架,大多是Python的實現,為什麼呢?因為Python有很多庫很方便做人工智慧,比如numpy, scipy做數值計算的,sklearn做機器學習的,pybrain做神經網路的,matplotlib將資料視覺化的。在人工智慧大範疇領域內的資料探勘、機器學習、神經網路、深度學習等方面都是主流的程式語言,得到廣泛的支援和應用。人工智慧的核心演算法大部分還是依賴於C/C++的,因為是計算密集型,需要非常精細的最佳化,還需要GPU、專用硬體之類的介面,這些都只有C/C++能做到。而Python是這些庫的API binding,使用Python是因為CPython的膠水語言特性,要開發一個其他語言到C/C++的跨語言介面,Python是最容易的,比其他語言的門檻要低不少,尤其是使用Cython的時候。四、資料分析資料分析處理方面,Python有很完備的生態環境。“大資料”分析中涉及到的分散式計算、資料視覺化、資料庫操作等,Python中都有成熟的模組可以選擇完成其功能。對於Hadoop-MapReduce和Spark,都可以直接使用Python完成計算邏輯,這無論對於資料科學家還是對於資料工程師而言都是十分便利的。五、自動化運維Python對於伺服器運維而言也有十分重要的用途。由於目前幾乎所有Linux發行版中都自帶了Python直譯器,使用Python指令碼進行批次化的檔案部署和執行調整都成了Linux伺服器上很不錯的選擇。Python中也包含許多方便的工具,從調控ssh/sftp用的paramiko,到監控服務用的supervisor,再到bazel等構建工具,甚至conan等用於C++的包管理工具,Python提供了全方位的工具集合,而在這基礎上,結合Web,開發方便運維的工具會變得十分簡單。更多學習乾貨,歡迎關注我哦!

  • 中秋節和大豐收的關聯?
  • 如何看待世界盃南韓2:0戰勝衛冕冠軍德國隊?