顯示具有 Python 標籤的文章。 顯示所有文章
顯示具有 Python 標籤的文章。 顯示所有文章

2021年8月25日 星期三

Python大數據特訓班(第二版):資料自動化收集、整理、清洗、儲存、分析與應用實戰

 

大數據的定義中有四V,巨量(Volume)、快速(Velocity)、多樣(Variety)和疑真(Veracity)。我在數據工程的實務中,主要是負責大數據平台Hadoop和Spark平台的維運與開發,面對多樣化資料(Variety)的處理是相對陌生的。恰好看到這本「Python大數據特訓班(第二版)」,主軸環繞在使用Python語言進行網路資料擷取、數據清洗與儲存等實用技術,想當然耳要買來研習一番。

Python世界中有五花八門的模組可讓工程師運用,而書中挑選的Numpy、Pandas和Matplotlib都是數據處理時核心的選項。比起自個在Stack Overflow網站中查閱零碎片段的程式碼,書中以小節為單位,漸進式地展示這些模組的用法,整理了許多執行數據工程任務時常用的功能,讓我覺得十分受用。相信熟讀「Python大數據特訓班(第二版)」後,未來在面對專案的數據爬蟲需求時,能充滿自信地說一聲「I'm ready」。

全書內容簡潔充實,很適合做為大數據入門的教材,若搭配個兩天16小時的上機練習,完全就是一堂收費上萬元的資◯會課程,可以學到基礎的網站爬蟲與數據清洗實務。可惜的是雖然書名有寫著「第二版」,但看來再版時編輯並沒有再次詳細檢閱內文。書中後半的練習無法讓讀者照本宣科地完成,原因是當做範例的網站頁面內容已有變動。對初學者來說肯定十分苦惱,但轉念來看,如果把它看成進階的練習題,強迫讀者活學活用剛從書中學會的技巧,自力完成分析網頁結構的挑戰,倒也不是件壞事。

 

2020年1月7日 星期二

Deep Learning for Computer Vision: Image Classification, Object Detection, and Face Recognition in Python


2019年資通產業最熱門的「Buzzword」肯定是「深度學習」吧。毋庸置疑地藉由深度學習強大的演算能力,讓資訊科技得以提供更令人驚豔的服務,「自駕車」、「人臉辨識」、「智能客服」以及數不清的各項運用正在改變產業生態,也在改變這個世界。

從資料中找出特定模式的「機器學習」(更早之前稱為「資料探勘」或最早的「迴歸分析」),其實由來已久,相信很多老IT人會丈二金剛摸不著頭緒,懷疑是否是「舊瓶裝新酒」的行銷炒作風潮。炒作成份當然有,但「深度學習」確實有著不可忽視的「含金量」。

建基在「類神經網路模型」之上的各種「深度學習」演算法,有別於傳統「機器學習」的建模手法,將「特徵擷取」的過程大幅度地(幾乎是全部)假手由算法決定。此舉雖然造成「最終模型」有無法被事後描述解釋的負作用,卻能達成有效解決許多「人工智慧」的精典課題。這些課題都是無法用人力完整條列出處理邏輯(以及分辨那個特徵最重要),包含了「文字辨識」、「圖像辨識」和「語音辨識」。大部份強調AI的新創公司,也多半以這三項應用為核心訴求。

2019年開始接觸「深度學習」以來,讀過「Deep learning 深度學習必讀:Keras 大神帶你用 Python 實作」一書後,已經掌握初步的實作基礎。但針對「圖像辨識」的應用,尚只懂些「圖像分類」的皮毛,缺少更進階的知識、技術。無獨有偶,公司恰好計劃進行「圖像辨識」的研究,在一連串請教「谷哥大神」的資料探索後,讓我找到了「Deep Learning for Computer Vision」這本電子書。其用簡單、明快的範例與程式碼,帶領讀者們進入「圖像分類」、「物件辨識」和「人臉辨識」等電腦視覺應用領域。經由500頁內容的「潛修」,出關之後對於 「深度學習」在圖像處理的範型已經了然於胸,稱上個「略懂」。

個人在閱讀習慣上一直偏好紙本實體書籍,即便電子書有著輕簿不佔空間的優點,也難以撼動紙本書在我心中的地位。然而面對這本「Deep Learning for Computer Vision」,我也不得不放下我(無謂地?)的堅持。因為它只出純電子書!完全就是「內容是王(Content is King)」的典範,讀者們只能乖乖地拿出信用卡付款,下載後好好地吸收這500頁精髓。

2018年11月29日 星期四

Flask網頁開發第二版


在大數據、機器學習和人工智慧喊得震天作響的現在,Python語言得利便於數據分析的優勢,儼然成為新世代的首選程式語言。從事軟體開發已經十多年,後半段的時間都是在處理後端資料面的應用,已經好多年沒有開發第一線的網站程式了。之所以研究起Python網頁開發技術,主要是將PySpark機器學習模型包裝成線上可用的API服務。向同事打聽主流的Python網站開發框架有那些後,就挑了比較輕便的Flask來學習。

「Flask網頁開發第二版」一書旨在教導讀者如何使用Python開發網頁程式。它手把手的帶領讀者,用Flask框架來打造一個小而美的部落格網站。完整地介紹了網站開發中各種核心元件的觀念與實作,從基本的前端表單元件、資料庫ORM,一路到API、測試、效能等進階議題。用300頁的內容就讓讀者進入Python網站開發的領域,作者在書籍章節設計上的巧思令人折服。

雖然多數的核心元件的章節頁數不多,僅講說了最基本的概念和功能。想要深入瞭解各元件的細部實作,得另外再找其它資料研究。但對於想要在短時間內掌握Python網站開發技術的工程師而言,「Flask網頁開發第二版」是非常不錯的敲門磚。

2018年3月30日 星期五

Python網路爬蟲王者-Selenium

ISBN:9789863794127

相信時致今日,沒有人可以否認網路上的資料近乎無窮無近,只端看你要如何使用它。

《Python網路爬蟲王者-Selenium》完全是目的導向的工具書。目標讀者是有心瞭解網路爬蟲技術的人。書中從基本的網頁結構開始講解,尊定讀者後績學習的基礎。再藉由一小段一小段的程式練習範例,讓讀者自然而然地熟習網頁元素定位的技巧。在看完第4章之後,我已經能完成工作上需要的網路爬蟲任務了。

書本的中後半段,是把重心轉向網頁程式的自動化測試。這原本就是Selenium當初出被開發出來的用途。只是Selenium實在太好用,所以僅是拿來當成網路爬蟲的工具,就已經是值回票值了。網頁程式自動化測試目前在台灣IT圈,應該不算普遍被採用的技術(人工測試比較多),對於網頁程式工程師來說,多瞭解絕對是好事,或許能有派上用場的一天。

如前文所述,網路上的資料什麼都有、什麼都不奇怪,藉由網路爬蟲的協助,取得有意義的資料來做分析、應用,用以優化企業流程,在未來是各行各業都可能探用的作法。從事後端工程師職務的從業人員,都應視為基礎能力的一環。

I believe that, even today, no one can deny that the amount of information on the Internet is almost endless. It all depends on how you choose to use it.

**《Python Web Scraping King – Selenium》** is a very practical book with a clear goal. It is written for people who want to learn about web scraping. The book starts with the basic structure of web pages, building a good foundation for further learning. It then uses short programming exercises to help readers gradually become familiar with how to locate elements on a web page. After finishing Chapter 4, I was already able to complete the web scraping tasks I needed to do at work.

In the second half of the book, the focus shifts to **automated testing** for web applications. This was actually the original purpose for which **Selenium** was developed. However, Selenium is so useful that using it only as a **web scraping** tool is already worth the price of the book. Automated testing for web applications is probably not yet widely used in Taiwan's IT industry, where manual testing is still more common. For web developers, learning more about it is definitely a good thing. You never know when it might come in handy.

As mentioned earlier, the Internet contains almost every kind of information you can imagine. With the help of web scraping, we can collect meaningful data for analysis and practical applications, and use it to improve business processes. In the future, this could become a common approach in many different industries. For people working as backend engineers, web scraping should be considered one of the basic skills worth having.