Python和Java到底是做什麼用的?需要通通都學嗎?

Python和Java到底是做什麼用的?需要通通都學嗎?
Python和Java到底是做什麼用的?需要通通都學嗎?

時下最夯的程式語言Python和Java把你搞得不清不楚的嗎?今天要來帶大家一起比較一下其中的差異~大家再依自己需要作選擇喔!!

Python 和 Java 是兩種現今熱門、卻又不同的程式語言。對現在的科技業來說,兩者都是十分有用工具,且瀏覽各大求職網站,Java 工程師近十年來一直是科技業赤手可熱的職缺。而新興的 Python 語言,職場上對於會 Python 語言的工程師的需求也越來越高。若現在你想轉職工程師,卻又不知學哪種程式語言的話,可以參考本篇文章。

動態類型 vs. 靜態類型

Java 和 Python 最大的區別之一,就是兩種語言處理變數的方式。Java 強迫你在第一次聲明變數時,就必須要定義它的類型,且不可再修改,這就是「靜態類型」。而 Python 不需要在一開始就聲明變數的類型,且後續可以改變一個變數的類型,例如可以把整數變數替換為字符串(string)。

Python語法中一切皆為物件

在 Python 中,無論是數值(整數、浮點型)、字符串、字典、元組對象、還是他們所對應的類型,以及函數、模塊等,都是物件,他們的祖先是PyObject。而 Java 中的函數,基本數據類型等都不算物件。

括號和縮排

Python 與眾多程式語言的不同之處,在於它使用縮排區分程式區塊(block)。而 Java 與其他大部分的程式語言都是使用大括號定義函數和類定義的開頭和結尾。使用縮排的好處在於程是碼會比較易讀,且不會有缺括號導致錯誤的可能。

軟體可移植性

Java 的可移植性 (可攜性) 更強,可以用於開發平台獨立的應用。這是 Java 相較於 Python 的優勢之一,任何可以運用 Java 虛擬機器 (JVM) 的電腦或者行動裝置都可執行 Java 的應用。相較於 Java,執行 Python 的程式就比較麻煩,都需要一個編譯器來將 Python 代碼轉化為你的作業系統可理解的代碼。因為大部分的設備有安裝了 Java 虛擬機器 (JVM) ,所以 Java 工程師可以自信的說他們的開發出來的 Java 應用,幾乎對所有的用戶都可用。

Python 的 GIL

Python 的 GIL (全局解釋器鎖) 一直被不少開發者所詬病。Python 的多執行緒在多 CPU 條件下,並不能一併運行,而必須要在每個執行緒運行時,先需要獲得解釋器的訪問權限,才可以運行。在一個執行緒運行時,其他的執行緒只能處於等待的過程。不過這方面的問題可使用多工處理機制來彌補。而 Java 支援真正的多執行緒,控制資源的的共享很到位。

應用領域

Java 主要用於商業邏輯強的領域,如電子商城系統、金融、保險等傳統資料庫事務領域,通過類似 ssh 框架事務代碼,對商業資料庫,如 Oracle、DB2、SQL 伺服器等支援較到位。Python 主要用於大數據分析、金融分析、信息分析、圖像演算法、數學計算、統計分析、算法建模、伺服器運算、自動化操作、開發速度快,適合需要快速靈活開發的產業。

哪一個更好上手?

一開始也許是 Python 較好上手。因為 Python 的語法設計很直覺,讓新手們可以快速上手、寫各種應用程式。但是入門簡單,並不代表會一直簡單下去。要學會巧妙運用 Python,還需要學習各種 Python 的函式庫。Python 的強大在於函式庫,因為 Python 的函式庫可以用 Python、C 語言、C++等程式語言設計,再提供給 Python 使用,所以無論是 GPU 運行、神經網絡、智能算法、數據分析、圖像處理、科學計算等,各式各樣的函式庫都在等著你來學習。而 Java 就沒有那麼多函式庫,無論是入門還是進階,學習的難易度相較於 Python 都較平均。

更多關於Python或人工智慧或其他程式語言相關文章請點閱下方連結

其他閱讀

RWD 和 AWD 的差異與優缺點

前端工程師一定得選擇RWD嗎?AWD要怎麼做才能無痛SEO?

秀程式設計也能交女友!工程師專屬交友App:VSinder

Nature:語言天才比數學高手更適合學 Python!別在嘴文科生、女性不能寫程式了

2022最佳職場NVIDIA蟬聯第一!!Meta元宇宙呢?

義大利廠Brembo幫你實現人工智慧自動煞車的夢想(上)

Spotify研發人工智慧技術抓住客戶!穩坐串流音樂龍頭!

Python程式語言獎封冠後持續被看好!!還不學起來!!

Python程式語言獎封冠後持續被看好!!還不學起來!!
Python程式語言獎封冠後持續被看好!!還不學起來!!

 

燒了好久的Python在程式語言獎持續有優異的表現~且未來前景光明!!想踏入這領域的你就別再猶豫啦!!

Python 兩度獲獎,2021 封冠後未來看好

Python 在 2021 年度表現亮眼,不僅連續兩年(2020、2021)獲得 TIOBE 年度程式語言獎,更從 2021 年初的 TIOBE Index 第三名,同年 8 月首度超越 Java 晉升亞軍,在同年 10 月攀升至第一名後,即穩居冠軍寶座至今。

TIOBE 是程式語言的討論社群,TIOBE Index 則是程式語言的流行指數。該指數在基於全球工程師、課程使用量及第三方供應商的數據,每月更新一次;另外在 Google、Yahoo、維基百科等主流搜尋引擎的搜尋量則用來計算分數。值得一提的是,TIOBE Index 的排名並非要評斷何為「最完美的程式語言」,而是用來檢視自己所學習的程式語言是否為最新、最泛用的語言,也有助於在建構新的軟體系統之前如何選擇程式語言的關鍵決策。

而 TIOBE 年度程式語言獎是頒發給在一年之中,評分成長最多的程式語言,本次 C# 本有望冠軍,卻在 12 月時被 Python 反超而遺憾落馬。

官方表示,目前 Python 的評分比第二名 C 更高了 1% 以上,雖然與 2001 年的 Java 巔峰相比還有一段距離,但由於 Python 已經成為許多領域的標準程式語言,官方相信未來仍有持續成長的空間。

無處不在的程式語言!Python 連續兩年霸榜的秘密

除了奪得 2021 年度的雙冠王,Python 此前在 2007 年、2010 年、2018 年、2020 年都曾獲得 TIOBE 年度程式語言獎的稱號,是奪得該獎項最多次的程式語言。

由此可見,Python 在程式語言界確實如 TIOBE 官方評價般「無處不在」。Python 不僅在數據科學、機器學習等領域大受歡迎,同時也適用於 Web 開發、後端、移動應用程式開發,甚或是(較大的)嵌入式系統等領域。
整體而言,Python 之所以被大規模地採用,主要歸功於其簡單上手的便利性及可以大幅提升生產效益的成長性。除此之外,Python 這兩年的異軍突起,並持續蟬聯冠軍的可能原因還有:擁有最多 AI 人工智慧函式庫、高平台獨立性、高靈活度、良好可讀性及視覺化選項等優點(相關文章:IBM背書!入行AI人工智慧必學Python的8大理由),無怪乎成為程式語言社群中最受歡迎的程式語言!

更多程式語言或人工智慧相關文章請點閱下方連結

其他閱讀

使用 JavaPython 22 種語言寫出「Hello World」會如何?

用說的就能寫程式!人工智慧替手傷工程師開發語音程式工具

Nature:語言天才比數學高手更適合學 Python!別在嘴文科生、女性不能寫程式了

第一次上程式設計課程Python還是Java?差在別?

以色列就是靠這款人工智慧裝置大大提升戰鬥力?!()

只要動動嘴~寫程式最枯燥乏味的地方由人工智慧幫你完成!()

UI,UX設計師非收不可的年度12個超狂網頁設計工具!!(1)

最新程式語言排行榜出爐啦!!Python居然排在這名次!!

最新程式語言排行榜出爐啦!!Python居然排在這名次!!
最新程式語言排行榜出爐啦!!Python居然排在這名次!!

還在觀望Python課程嗎?快手刀報名吧!!最新程式語言排行榜Python可是快擠掉Java了呢!!

自 2001 年起,創建滿 20 週年的程式語言排行榜「TIOBE Index」都會公布當月的程式語言排行。第一次出現在 TIOBE 榜上的前三名為:Java、C 以及 C++。這幾年來,穩居在榜上前三名的常客為 Java、C 和 Python,與 20 年前異常地相似。

2021 年 7 月程式語言排行榜 TIOBE 所列出的前 10 名熱門語言中,可看出 C 語言與 Java 分數已明顯下降,Python 的分數則上升 1.86%。

Python奪第三!分數卻與第一名史無前例地相近

而最新一期(2021 年七月)的結果也不意外,JavaC 和 Python 穩居前三名。但是,長期居冠的 C 語言和第二名的 Java 分數都明顯下降、 Python 的分數卻竄升,使得前三名的分數差異史無前例的靠近,第一名和第三名的分數只相差了 0.67%!這意味著接下來的幾個月,榜上的前三名將有史無前例的結果。

人工智慧、新冠藥物⋯Python應用廣有望奪冠

近幾年,人工智慧(Artificial Intelligence)與資料挖掘(Data Mining)都在蓬勃發展中,剛好 Python 又是這兩大領域的領導語言,這優勢可讓 Python 在接下來幾個月隨時都可能成為第一。除了上述兩大領域,Python 的應用領域也包含網頁前後段、嵌入式系統等;去年更因 Covid-19 的爆發,研究人員積極使用 ​Python 進行統計分析,尋找對抗病毒的藥物,讓 Python 的分數有前所未有的竄升。

Covid-19 除了帶動 Python 的熱門度外,用於醫療軟體開發的 C 和 C++ 也受到影響。C 語言擠下了近年來居冠的 Java 成第一名。

總體而言,位居榜首的 C 語言分數為 11.62%,自去年 7 月以來下降了 4.83%。緊接在後的 Java 得分為 11.17%,較去年下降了 3.93%。排名第三的 Python 得分 10.95%,較去年增加了 1.86%,也是榜上前 20 名中增幅最大的程式語言。

前七名上榜語言與去年同期相同

有趣的是,本次榜上前七名的程式語言都與去年同期(2020 年七月)相同:C++ 與 C# 分別以 8.01% 與 4.83% 位居第四、第五、Visual Basic 以 4.50% 的分數排名第六,JavaScript (2.71%) 排名第七。而第八名的 PHP 相較去年變化不大,只升了一個名次;組合語言 ASM 則在一年間升了四個名次,進 Top10 榜到第九名;SQL  也在一年內加入 Top10,位居第十。

2021 年 7 月程式語言排行榜 TIOBE 所列出的 11-20 名熱門語言

TIOBE Index 的其他變動,還有位居第 11 名的 Visual Basic,自去年七月以來以來上升了 9 名;在此一年間,第 12 名的 R 語言下滑了 4 名、位居第 14 的 Fortran 則飆升了 36 個名次、第 15 名的 Groovy 竄升九個名次、第 16 名的 Swift 則滑落六個名次、Perl 與 MATLAB 則不約而同地在一年內滑落四個名次,分別居於第 18、19。

TIOBE 使用許多指標來決定每月一度的排名,指標包含了 Bing、亞馬遜、YouTube、維基百科、Google、Yahoo 和百度上的搜尋結果。讀者們想要進一步查詢完整指標的話,就親自至 TIOBE 官網上看看吧!

更多Python或人工智慧相關文章請點閱下方連結!!

其他閱讀

AI打造史上最難「惡」羅斯方塊!世界紀錄僅消去41

AI 人工智慧「Nadine」能說能笑 還能陪老人玩賓果

人類又輸了?工程師需花數月設計出IC晶片,AI六小時就搞定!

你笑,AI也笑!人工智慧也能用「表情」回應「感情」了

半百大叔自學Python還被知名企業採用!!()

有了人工智慧和手機~你也能輕鬆當起專業氣象播報員!!

臉書用十一張照片讓人工智慧自主訓練出新境界!!

半百大叔自學Python還被知名企業採用!!(下)

半百大叔自學Python還被知名企業採用!!(下)
半百大叔自學Python還被知名企業採用!!(下)

超夯的Python你學了嗎?半百大叔都在學~技術還被企業採用~你還不趕快學起來!!(下)

本篇為下篇,上篇請點半百大叔自學Python還被知名企業採用!!(上)

與東大實驗室合作 研發出包裝喜好預測評估 AI

為了讓專案更好的步上軌道,坂元向隸屬於東京大學的山崎實驗室「求助」──他每 1.5 個月會與實驗室的副教授山崎俊彥開 1 次會。

坂元表示:「見面的時候山崎教授不只會教我Python編碼方面的知識,還會提出『有這樣、那樣的演算法,你為什麼不嘗試看看呢?』回去後我會用 Google 搜索相關知識,於下一次開會時報告結果。」坂元微笑道:「教授把我當成他的學生一般照顧,感覺就像我在 50 歲時考上了東大一樣。」

在山崎教授的建議下,阪元的開發方向確定為「包裝設計喜好度評估預測 AI 服務」。

2020 年 6 月,坂元與東京大學山崎實驗室共同在當年的日本人工智慧學會上發表論文:《使用深度學習預測包裝設計的受青睞程度》(深層学習を用いたパッケージデザインの好意度予測)。

隨後,幾乎是由阪元個人所研發的「包裝設計評估 AI」終於開發完成。

這款 AI 可以將包裝設計的好感度以 5 分制評分,還可以直觀地看到消費者在包裝上著重於什麽地方、包裝設計方面的哪個部分會連結到喜好度等細節,整個分析過程只需要幾分鐘的時間。

▲ AI 可以在幾分鐘內為你的包裝設計評分。

至於預測值的準確率,比較「問卷調查結果實測值」與「AI 計算的預測值」兩者之後,得到的結果,誤差低於 5 %的結果高達七成以上,相關係數為 0.514。不同商品類別的準確率亦有些許落差,如啤酒、調味料、保養品等類別可得到很高準確率,甚至達實用階段。

被雀巢選中來決定新商品的包裝

2020 年 7 月 ,知名速溶咖啡公司雀巢宣布他們的新系列商品「雀巢咖啡黃金組合-大人的獎賞」(ネスカフェゴールドブレンド 大人のご褒美)的包裝,是採用 Plug 公司的「包裝設計評估 AI」所輔助完成的。

▲ 雀巢採用包裝評估 AI之產品。AI 以熱點圖的形式表達消費者最關注的地方。

雀巢表示,這次的新商品從口味、命名到包裝都十分精心考量,想帶給消費者豐富、優雅的印象,因而採用了最新的 AI 技術,來幫助他們確立出合適的包裝。

而坂元英樹所開發的 AI 技術也正式成為商業應用服務,只要在官方網站上傳包裝設計的圖片,任何人都能進行測試,並且十張照片以內是免費的,目前已有超過兩百間公司登錄使用。

從 0 經驗的大叔,變成改變整個市場型態的推手

完全無經驗、已經年過半百的坂元英樹,從 0 開始學習 Python、自己寫程式,到邁入實用階段,最後,他或許會大幅改變行銷活動中費時的市場調查作業。

AI 服務的成本比一般的消費者問卷調查便宜許多,此外,以往的問卷調查大約要花上一個月才能得到結果,而這項新服務只要幾分鐘。既省錢又省時,不只市場調查型態,就連產品開發流程也可能徹底翻轉。

而坂元英樹的故事,或許也能給所有想踏入 AI 領域的初心者們一劑強心針。

更多Python或人工智慧相關文章請點閱下方連結

其他閱讀

AI 產業革命開始!為何 Python 成人工智慧必備語言?

研究所開始鋪路未來扎實的Python課程讓我錄取竹科工程師

進可攻·退可守的一技之長-Python課程結業後成功轉職工程師 …

被日文系耽誤的工程師魂? Python課程結業後的他,竟錄取全球百大企業!

Python居然可以視覺化?!來自大一新生的驚人開發~

女性不適合學習Python課程?第一位工程師就是女性!(上)

搞懂機器學習非知不可的十大Python函式庫都在這~(三)

半百大叔自學Python還被知名企業採用!!(上)

半百大叔自學Python還被知名企業採用!!(上)
半百大叔自學Python還被知名企業採用!!(上)

超夯的Python你學了嗎?半百大叔都在學~技術還被企業採用~你還不趕快學起來!!(上)

年過 50 歲的日本副社長自學 Python!寫出的 AI 還被雀巢採用

你是否也有個轉職夢,想學 Python、當工程師或設計 AI 軟體,卻因為擔心自己的背景、年齡、經歷而不敢往前?

那這位已經日本的 50 歲「文科」副社長坂元英樹,從完全的外行人到研發出改變產業的 AI 應用的故事,肯定能激勵你!

一間市場研究x包裝設計公司,為什麼要自己研發 AI?

故事要從坂元英樹所任職的公司「Plug」(株式会社プラグ)說起。

Plug 是由一間從事市場研究的公司、與一間從事包裝設計的公司於2014年合併而來,當時只是員工數約 30 人的小公司,至今已有約 70 名員工。Plug 主要提供的服務為:透過市場調查來了解消費者對商品包裝的喜愛度、偏好度與購買相關度等資訊。

▲ Plug 是一間提供市場行銷調查和包裝設計開發業務的日本公司。

過去傳統做法是:當廠商需要決定最終要選擇 A 設計或 B 設計,Plug 便會調查數百個消費者的意見和想法,統計出哪個設計方案會讓消費者更有購買慾。

換句話說,大多數產品包裝都是由客觀的數據資料決定的。這表示 Plug 要做的是把「包裝美觀好看」這種主觀因素,轉化成「因為它在市場上會更受歡迎」這種可以明確量化的客觀因素。

 市場調查重要的地方在於把市場接受度量化成具體數字。圖為日經雜誌(日経クロストレンド)委託 Plug 調查各品牌即食沖泡湯包的包裝設計、在市場上的喜愛排行。圖片來源:Plug 官方網站。

但在各種新興技術蓬勃發展的現代,有什麼更快、更好、更準確的方法,可以數字化出「包裝設計」有多少市場接受度呢?這個問題成為 Plug 急需解決的商業挑戰。

而 AI 正可以完美的解決這個問題,也是成為 Plug 副社長坂元英樹開始學習 Python 踏上 AI 之路的契機。

從完全不會到寫出程式 副社長一年花 1000 小時學習 AI

看到這裡,有人肯定會提出疑問:「就算公司需要 AI 技術,那為何不找外包公司就好了呢?身為管理職的副社長有需要自己跳下去學嗎?」

這個問題,坂元英樹接受日本自媒體「ITmedia NEWS」採訪時是這麼回答的:「委外的化一方面耗費成本,而且 know-how 會外流。」並表示:「實際上,我們在開發之初就試圖將其外包,但是坂元和同事因為遇到種種問題,最終轉向了內部生產。」

但是如果要由公司自己開發,研發人員又要從哪來呢?

綜合考量之後,坂元決定從最常被用於開發 AI 的程式語言──Python 開始學習。他笑稱:「這是我這輩子第一次接觸程式語言,當時的我甚至都不知道 for 語法是什麼。」

坂元踏出的第一步,就是報名了一間程式語言學校,並且設定好在家學習的目標:一年學習 1000 個小時。「如果我在工作日學習 2 個小時、週末學習 5 個小時,那麼一週就學習了 20 個小時,持續這樣做一年,我就能夠學習 1000 個小時了。」坂元英樹這樣表示。

▲ Plug 副社長坂元英樹。圖片來源:Plug官方網站。

他花兩個月時間掌握了 Python 的基本知識後,又報名了另一間專門教機器學習的學校。 坂元:「我過去從事過市場行銷調查員,對統計學有基本的知識,所以比較容易理解機器學習的概念,只是我一開始不知道如何用 code 來表達它。」

到此,這個還沒有雛型的「計畫」都還是在工作之餘進行的,雖然研發 AI 技術對公司來說舉足輕重,但還不確定能否將其轉變為正式的專案。

「當時的我下班後還是每週花 20 個小時在寫 AI 上,我的家人們因此說:『你滿腦子都是 AI!』」坂元笑稱:「也讓我覺得,或許比起管理職,當個 AI 工程師或許更是我的天職。」

時間來到坂元投入開發的五個月後,事情終於有了進展。他們開發了一個概念驗證(PoC)模型,原本該模型顯示設計的實際評價和人工智慧評價的相關性很低,只有 0.3 的低關聯度;但經過進一步的討論、研究後,終於把相關性提高到 0.5。

「這時我們確信,這個計畫可以成為公司內部的正式專案。」

本篇為上篇,下篇請點半百大叔自學Python還被知名企業採用!!(下)

更多Python或人工智慧相關文章請點閱下方連結

其他閱讀

AI 產業革命開始!為何 Python 成人工智慧必備語言?

研究所開始鋪路未來扎實的Python課程讓我錄取竹科工程師

進可攻·退可守的一技之長-Python課程結業後成功轉職工程師 …

被日文系耽誤的工程師魂? Python課程結業後的他,竟錄取全球百大企業!

Python居然可以視覺化?!來自大一新生的驚人開發~

女性不適合學習Python課程?第一位工程師就是女性!(上)

搞懂機器學習非知不可的十大Python函式庫都在這~(三)

Python居然可以視覺化?!來自大一新生的驚人開發~

Python居然可以視覺化?!來自大一新生的驚人開發~
Python居然可以視覺化?!來自大一新生的驚人開發~

密密麻麻的Python也能視覺化?!你沒看錯~確實可以喔!!開發者還只是個大一新生呢~

小大一把 Python 程式碼「可視化」!Debug 不再傷肝傷眼

最近一個 Python 腳本在 GitHub 上受到掀起一陣討論──因為它簡單地把原本純文字的程式碼「可視化」了,開發者還是一個大一新生!

這個適用於 Python 環境的腳本編輯器名叫「Ryven」,著重於簡單化、透明化編碼過程,並致力為使用者提供最直觀、清晰且即時的反饋:

Ryven呈現操作流程的簡潔介面

▲ Ryven 可用簡潔的介面呈現導入圖片、調整大小、調整亮度、套用雙邊濾波器(Bilateral Filter)去噪這一系列的操作流程。

如上圖,從導入圖片、調整大小、調整亮度到套用雙邊濾波器(Bilateral Filter)去噪這一系列的操作流程,用簡潔的介面呈現出來,每個步驟都一清二楚。

Ryven運算矩陣

▲Ryven 也可以運算矩陣:無論是逆矩陣、共軛還是隨機變量,都能得到可視化的即時反饋

不只編輯圖片,運算矩陣也可以。無論是求逆矩陣、求共軛還是隨機變量,都能藉由可視化得到即時反饋。

Ryven 在 GitHub 上獲得了超過 1600 顆星星,完全免費且開源。讓不少人驚訝的是,Ryven 的開發者還在就讀大學一年級!

這位年少有為的開發者名叫 Leon Thomm,稱自己是一名業餘工程師,並表示自己正在就讀瑞士蘇黎世聯邦理工學院一年級,但在進入大學前就有豐富的軟體開發經驗。現階段重心在研究程式設計的可視化。

Ryven:一個為 Python 設計的視覺化腳本編輯器

Ryven 開發環境基本要求為 Python 3(推薦3.8+)、PySide2(推薦2.14+),運行跟文件中的 Ryven.py ,即可打開編輯器,也支援建立虛擬環境。

開發者特別在 Ryven 的介紹網頁提到,目前常見的程式設計可視化編輯器有兩種算法模式──資料流(data)與執行流(execution),而 Ryven 同時啟用了這兩種方法,讓使用者根據執行流程自行選擇適合的模式。

  1. 資料流:每當節點(note)的資料輸出更改,都會更新流程,並在所有連接的節點中即時更新結果。
  2. 執行流:資料不會在更改時立即更新整個流程,只有在某個節點請求輸出資料時,更新受影響的節點。

但無論哪種模式,要建立、編寫新節點都非常容易且直觀,只要是能在 Python 上運行的應用程式與數據庫都可以被放入 Ryven,對函式庫的使用也沒有任何限制。

除了便捷,Ryven 也十分重視 UI 的美觀與設計感,為此準備了 4 種不同風格的主題供使用者挑選;除此之外,還貼心為想在被窩中寫程式的使用者設想,支援觸控筆模式,除了編輯整個項目外,使用者也可以手動將節點寫入流程中。

Ryven的手寫模式

▲ 除了敲擊鍵盤,Ryven 也支援手寫模式。

如 Ryven 這類將程式設計可視化的編輯器近來大受歡迎,不少工程師都認為「可視化」導入程式設計後既明確又清晰,大大提升了編寫效率。也許等這類工具更加成熟後,會成為工程師 debug 的最佳幫手!

Ryven 傳送門請點此

更多Python或程式語言相關文章請點閱下方連結~

其他閱讀

狗狗是人工智慧的最佳教練!Google AI機器人學狗左轉右彎還能小跑

SEO是什麼?PPC關鍵字廣告差在哪?如何自學?

2020年度十大Python函式庫人工智慧 · 機器學習必備

終極版 AlphaGoDeepMind 最新人工智慧「MuZero」能下棋、玩遊戲、壓縮影片

人工智慧面試官你遇過嗎?有了他就不用擔心受外貌影響啦!!()

Google說有了他!!就能讓你的SEO更上一層樓!!

日文系錄取竹科知名百大企業只因報了Python課程?!

十大Python函式庫懶人包免費送!!快收藏起來!!(四)

十大Python函式庫懶人包免費送!!快收藏起來!!(四)
十大Python函式庫懶人包免費送!!快收藏起來!!(四)

Python的同學們一定要知道的十大Python函式庫都幫大家整理好了~請享用~(四)

本系列文章為【2020年度十大Python函式庫-人工智慧 · 機器學習必備 】的最後一篇。上一篇介紹了 PyTorch 版的 Keras「PyTorch Lightening」讓你告別沒完沒了的 Debug!另外還有微軟出的 Hummingbird 讓你不用重新設計新模型;另外還有可以將高維度資料視覺化的「HiPlot」,請點十大Python函式庫懶人包免費送!!快收藏起來!!(三)看上一篇閱讀了解!

 

HiPlot

幾乎每個數據工程師都處理過高維度資料(High Dimensional)。可惜人類的腦容量有限,無法直觀地處理此類資料,因此必須求助於科技來解決。

2020 年早些時候,Facebook 發布了 HiPlot函式庫,可使用平行座標和其他圖形方式來表示信息,從而協助找出高維度資料中的關聯性和模式。他們在官網中說明了其概念,基本上,HiPlot 是一種將高維度資料視覺化以及過濾的便利方法。

 

 

 

HiPlot

 

 

Scalene

隨著 Python 的函式庫生態系統變得越來越複雜,我們也寫出越來越多 C 語言延伸的代碼以及多執行緒代碼。但是,CPython 內置的效能分析器(profiler)無法完整地處理多執行緒和本機代碼。

此時你需要 Scalene:Scalene 是用於 Python 腳本的 CPU 和記憶體的效能分析器(profiler),能完整地處理多執行緒代碼並區分運行 Python 和本機代碼所花費的時間。此時你無需修改代碼,只需要在命令行中使用 Scalene 運行腳本,腳本就會自動生成報告的文字檔或 HTML,顯示代碼中每一行的 CPU 和記憶體使用情況。

 

 

 

Scalene

 

 

▲ Scalene 是用於 Python 腳本的 CPU 和記憶體的效能分析器,能處理多執行緒代碼並區分運行 Python 和本機代碼所花費的時間

 

 

 

 

同場加映:Norfair

選出去年十大 Python 函式庫的機器學習顧問公司 Tyrolabs 自家也開發了「影像內容分析 (Video content analysis)」的 Python 函式庫「Norfair」。

Norfair 是一個輕量的且可被客製化的 Python 函式庫,用於即時物件追蹤(real-time object tracking):它可以在不同的影格當中,替每個被偵測到的物件賦予獨一無二的 ID,如此一來,你就能辨識出這些物件——縱使它們都在移動。

 

 

Norfair
 

▲ Norfair 可以在不同的影格當中,替每個被偵測到的物件(如圖中左側)
賦予獨一無二的 ID (如圖中右側)

 

 

 

 

藉由 Norfair,工程師只需輸入幾行代碼就能賦予任何偵測器追蹤的功能——無論追蹤的物體是具有有四個參數的 bounding box(邊界框)、只有單一點的幾何中心(centroid)、還有人體姿態辨識系統的輸出(經常有多個關鍵點是大於特定閥值的)等任何物體。

此功能常被用作計算兩個追蹤物體之間的距離,用戶可依序需要定義檢測標準以及追縱的對象。

Norfair 是非常模塊化的 Python 函式庫,使用起來很靈巧:工程師僅需使用幾行代碼,即可在現有的檢測代碼庫上添加追蹤的功能。

 

 

更多Python或程式設計相關文章請點閱下方連結~

 

 

 

其他閱讀

Nature:語言天才比數學高手更適合學 Python!別在嘴文科生、女性不能寫程式了

人工智慧能「聽咳嗽聲認出新冠患者」!成功率達 98.5%

Google 正測試人工智慧系統,助盲人和視障人士獨立參加路跑

用說的就能寫程式!人工智慧替手傷工程師開發語音程式工具

電影迷工程師知道片中程式語言是Python還是Java?()

程式設計碼也能拿來當交友工具?!木訥的工程師們有福啦!!()

工程師非之不可的JavaScript歷史演變及特色應用全都錄!

十大Python函式庫懶人包免費送!!快收藏起來!!(三)

十大Python函式庫懶人包免費送!!快收藏起來!!(三)
十大Python函式庫懶人包免費送!!快收藏起來!!(三)

Python的同學們一定要知道的十大Python函式庫都幫大家整理好了~請享用~(三)

本系列文章為【2020年度十大Python函式庫-人工智慧 · 機器學習必備 】的第三篇。上一篇介紹了美化了 Python 錯誤信息的「Pretty Errors」,堪稱是療癒系的工程師的 debug 神器、還有「Diagrams」讓工程師不需要使用設計軟體,只要使用 Python 就能畫出美輪美奐的雲系統架構圖。請點十大Python函式庫懶人包免費送!!快收藏起來!!(二)看上一篇閱讀了解 。

HydraOmegaConf:結構化複雜的機器學習項目

在機器學習項目中做研究與實驗時,總是有五花八門的環境配置工作。在這些非平凡(non-trivial)的應用程式中,配置管理可能會變得也複雜。是否有結構化的方法來處理這種複雜性?

Hydra 可藉由「組合」的方式來建構配置,並從命令列或 config 設定檔中覆蓋某些特定的部分,而加快了執行速度。

為了要說明 Hydra 函式庫可簡化一些特定的任務,tryolabs 舉了他們正在試驗的模型的基本架構以及它的多種變化為例。借助 Hydra,可以定義基本配置,然後運行多個工作並對其進行變化:

 

 

 

 

Hydra 的表親「OmegaConf」為分層配置系統的基礎提供了一致的 API,並支援不同的來源如 YAML、config 設定檔、物件與 CLI 參數。

PyTorch Lightning:PyTorch 版的 Keras,告別沒完沒了的 Debug

PyTorch 是一款熱門的的深度學習框架,可以簡單的方式建構複雜的 AI 模型。但是當作大量實驗的時候,很多東西都會變得複雜過頭,代碼也隨之變得龐大,此時還是容易出錯。

於是,PyTorch Lightning 就為了減少錯誤而誕生:它可以重構 PyTorch 代碼、抽出複雜重複的部分,讓工程師可以專注於核心的建構、實驗也更快更便捷地開展迭代。

 

 

PyTorch Lightning重構PyTorch 代碼
 

▲ PyTorch Lightning 可以重構 PyTorch 代碼、抽出複雜重複的部分,讓工程師可以更專注在研究代碼上

 

 

 

 

Lighting 的原理是藉由將研究代碼從重複性強的工程代碼區分開,讓工程師可以專注在研究代碼上,思緒就會更加清晰,整體代碼也更加簡潔。

Hummingbird

並不是所有的機器學習都是深度學習。通常,你的模型是由更多傳統的演算法在 Python 的機器學習套件 scikit-learn(像是 Random Forest)中組成;或者你也可以選擇時下流行的 LightGBM和 與 XGBoost 的梯度提升技術 (Gradient boosting)演算法。

然而,機器學習領域一直都在進步。像是上述的 PyTorch 框架正以令人屏息的速度在進步,硬體設備也不斷優化,以更低的耗能、更快的速度完成張量計算。假如我們能將這些優勢套用到傳統的演算法中,不是很好嗎?因此 Microsoft 就發布了新的 Python 函式庫「Hummimgbird」。

Hummingbird 可以將已經訓練好的傳統機器學習模型,編譯至張量計算。這個強大的功能讓你不用設計新的模型!

截至目前為止,Hummingbird 支援轉換到 PyTorch、TorchScript、ONNX 與以及多種機器學習模型以及向量器。其實這跟上述提到的 scikit-learn(Sklearn)非常相似,讓你重複使用現有的代碼,但可將成品變成由 Hummingbird 生成的代碼

下篇,我們即將介紹「Scalene」:用於 Python 腳本的 CPU 和記憶體的效能分析器(profiler),能完整地處理多執行緒代碼並區分運行 Python 和本機代碼所花費的時間,還有用於影像即時追蹤(real-time object tracking)的 「Norfair」,能及時抓住正在移動的人、事、物並賦予獨一無二的 ID。請點十大Python函式庫懶人包免費送!!快收藏起來!!(四)看下一篇閱讀了解!

 

 

更多Python或程式設計相關文章請點閱下方連結~

 

 

 

其他閱讀

Nature:語言天才比數學高手更適合學 Python!別在嘴文科生、女性不能寫程式了

人工智慧能「聽咳嗽聲認出新冠患者」!成功率達 98.5%

Google 正測試人工智慧系統,助盲人和視障人士獨立參加路跑

用說的就能寫程式!人工智慧替手傷工程師開發語音程式工具

電影迷工程師知道片中程式語言是Python還是Java?()

程式設計碼也能拿來當交友工具?!木訥的工程師們有福啦!!()

工程師非之不可的JavaScript歷史演變及特色應用全都錄!

十大Python函式庫懶人包免費送!!快收藏起來!!(二)

十大Python函式庫懶人包免費送!!快收藏起來!!(二)
十大Python函式庫懶人包免費送!!快收藏起來!!(二)

Python的同學們一定要知道的十大Python函式庫都幫大家整理好了~請享用~(二)

本系列文章為【2020年度十大Python函式庫-人工智慧 · 機器學習必備 】的第二篇。上一篇介紹了把單調的「命令列介面」變花俏的 Python 函式庫:Typer、Rich 與 PyGui,除了可把命令列/終端機介面變彩色外,還可以加入表情符號與特效等。請點十大Python函式庫懶人包免費送!!快收藏起來!!(一)看上一篇閱讀了解 。

PrettyErrors:將 Python 醜陋的 bug 信息變漂亮

Python 已經是言簡意賅的程式語言了,但是當有 bug 時,它的錯誤信息輸出(參見下圖左側)也是一樣會讓你懷疑人生!密密麻麻的代碼,讓你必須在毫無頭緒之下地毯式搜索!

 

 

PrettyErrors美化了Python的錯誤信息
 

▲PrettyErrors 函式庫將原本混亂的 Python 錯誤信息(箭頭左邊所示)重新排版得井然有序、顏色與段落都很分明(箭頭右邊所示)

 

 

 

 

經過 PrettyErrors 的重新排版,所有醜陋的錯誤信息都能變的井然有序,最後你得到的是經過排版美化、整齊劃一的 bug 報告,如上圖的右側所示。

Diagrams:只用 Python 就能繪製雲系統架構

程式設計師除了 coding 與 debug 外,有時還需要跟其他的同事解釋錯綜復雜的架構。傳統上,我們會使用圖像介面(GUI) 工具來處理圖表、將其可視化後放入簡報、文件等,但這並非唯一的方法。

Diagrams 可以讓你在沒有任何設計工具的狀況下,僅僅使用 Python 程式碼就繪製出雲系統架構!它有現成的圖標,讓你能馬上對應AWS、Azure、GCP 等多個不同的雲端供應商,使得繪製箭頭、創建群組等都輕而易舉!只需幾行代碼即可!

 

 

 

透過Diagram而使用Python繪製的雲架構圖

 

 

▲ Diagram 函式庫能讓工程師僅僅使用 Python 代碼
就能繪製雲系統架構圖

 

 

 

 

下篇,我們即將介紹 PyTorch 版的 Keras「PyTorch Lightening」讓你告別沒完沒了的 Debug!另外還有微軟出的 Hummingbird 讓你不用重新設計新模型;另外還有可以將高維度資料視覺化的「HiPlot」,點十大Python函式庫懶人包免費送!!快收藏起來!!(三)看下一篇閱讀了解!

 

 

更多Python或程式設計相關文章請點閱下方連結~

 

 

 

其他閱讀

Nature:語言天才比數學高手更適合學 Python!別在嘴文科生、女性不能寫程式了

人工智慧能「聽咳嗽聲認出新冠患者」!成功率達 98.5%

Google 正測試人工智慧系統,助盲人和視障人士獨立參加路跑

用說的就能寫程式!人工智慧替手傷工程師開發語音程式工具

電影迷工程師知道片中程式語言是Python還是Java?()

程式設計碼也能拿來當交友工具?!木訥的工程師們有福啦!!()

工程師非之不可的JavaScript歷史演變及特色應用全都錄!

十大Python函式庫懶人包免費送!!快收藏起來!!(一)

十大Python函式庫懶人包免費送!!快收藏起來!!(一)
十大Python函式庫懶人包免費送!!快收藏起來!!(一)

Python的同學們一定要知道的十大Python函式庫都幫大家整理好了~請享用~(一)

國外的機器學習與資料科學顧問公司「Tyrolabs」每年底都會選出年度十大最強 Python 函式庫。去年(2020)年尾不例外。

根據 Tyrolabs 提出的免責聲明,2020 年他們在精選出 10 大函式庫時,在很大程度上是受到機器學習與數據科學的影響——儘管其中有幾個確實對「非」數據科學的人士非常有用。

因此,除了 10 個入選的 Python 函式庫之外,他們決定再從遺珠之憾中,挑出幾個他們覺得同樣重要的數據庫,列入「榮譽表揚(Honorable mentions)」的部分。

以下為入選的十大 Python 函式庫:

Typer:讓命令列介面更好編輯

雖然你並非總是需要編寫沒有圖像、滿滿文字的 CLI(命令列介面)應用程式,但是一但遇到了,一定會希望能速戰速決、無後顧之憂。FastAPI 的創作者「tiangolo」繼之前的 FastAPI 框架取得巨大的成功後,使用了相同的原理創作了新的函式庫 「Typer」,使你可以借力於 3.6 以上版本的 Python 才有的「類型提示(Type Hinting)」功能來編寫命令行介面。

這樣的設計讓 Typer 脫穎而出。透過「類型提示(Type Hinting)」功能,您可以在 Python 編輯器(如 VSCode)中享有「自動完成」功能,這將大大提高您的工作效率;除了能確保所寫的程式碼是否完整被紀錄之外,你也花了最少的力氣寫出純文字的 CLI 命令列介面的應用程式。

 

 

Typer為Python編輯器VSCode中的自動完成功能
 

▲ Typer 賦予 Python 編輯器(圖中為 VSCode)「自動完成」的功能,能有效提升寫程式的效率。(圖:FastAPI)

 

 

 

 

為了增強其功能,Typer 被建立在知名的「命令列神器」Click 之上。這意味著 Typer 可以充分利用 Click 既有的所有優點、社群與插件,使用更簡潔的樣版代碼,並依據所需,進行更複雜的工作。

Rich:讓命令列介面從黑白變彩色

依循命令行介面 CLI 的主題,誰說終端應用程式必須是單色的白色、或是駭客電影中常見的黑色、綠色呢?太無聊了!

身為 Python 工程師的你,是否會想再終端輸出時添加色彩與樣式,像是在打印複雜的表格時加入心跳特效、毫不費力地展示漂亮的進度條、markdown 或是表情符號?Rich 函式庫可以實現上述特效,如以下所示:

 

 

Rich讓命令列介面從黑白變彩色
 

▲ Rich 函式庫能讓單色的命令列介面(CLI)變彩色,還能有多種視覺特效、表情符號等。

 

 

 

 

無庸置疑的,Rich 可讓命令列字元的應用程式,外觀換然一新,給人的視覺體驗。

Dear PyGui:賦予終端機程式真正的圖像化介面

藉由 Rich 函式庫,終端應用程式變漂亮了,但是有時這樣的美化還不夠,你甚至需要一個新的 GUI 圖形介面。此時你需要 Dear PyGui——一款 Dear ImGui C++ 計畫的 Python 接口。

Dear PyGui 使用了在電玩中常用的即時模式(immediate mode),這意味著動態 GUI 是一個影格(frame)接著另一個影格獨立繪製的,不需保留任何資料。這使得「Dear PyGui」與其他 Python GUI 框架有所區別。它具有高性能,且使用電腦的 GPU 來促成高度動態界面的構建,這在工程、模擬、遊戲及資料科學的應用程式是經常被需要的。

 

 

Dear PyGui賦予終端機程式真正的GUI
 

▲ Dear PyGui 套用了電玩常用的即時模式,能賦予終端機程式真正的圖像化介面

 

 

 

 

本篇介紹均為把單調的「命令列介面」變漂亮的 Python 函式庫。若 Python 的錯誤信息也能這樣美化的話,工程師在 debug 時就不會這麼痛苦了!沒錯,「PrettyErrors」就是為這一目的而生。請點十大Python函式庫懶人包免費送!!快收藏起來!!(二)看下一篇

閱讀了解!另外還有只用 Python 就能繪製雲系統架構的「Diagrams」、還有可將複雜的機器學習項目「結構化」的「Hydra 與 OmegaConf」,請不要錯過!

 

 

更多Python或程式設計相關文章請點閱下方連結~

 

 

 

其他閱讀

Nature:語言天才比數學高手更適合學 Python!別在嘴文科生、女性不能寫程式了

人工智慧能「聽咳嗽聲認出新冠患者」!成功率達 98.5%

Google 正測試人工智慧系統,助盲人和視障人士獨立參加路跑

用說的就能寫程式!人工智慧替手傷工程師開發語音程式工具

電影迷工程師知道片中程式語言是Python還是Java?()

程式設計碼也能拿來當交友工具?!木訥的工程師們有福啦!!()

工程師非之不可的JavaScript歷史演變及特色應用全都錄!