發表文章

目前顯示的是有「Python」標籤的文章

Python跟Java的差別你都搞清楚了?來確認一下吧~

圖片
針對 Python 和Java的區別還是一知半解嗎?這篇文章要好好看呀!   目錄 動態類型 vs. 靜態類型 Python語法中一切皆為物件 括號和縮排 軟體可移植性 Python 的 GIL 應用領域 哪一個更好上手? 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 代碼轉化為...

Python封頂,2021年雙冠王的秘密

圖片
  想知道自己自己學習的程式語言 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 人...

自學Python也能有如此成就!來看看這50歲副社長的經驗-下

圖片
本文為該系列的下篇,上篇請 點此連結 成功自學 Python 後的它,獲得機會與這明星大學實驗室合作,一起來看看他們合作研發的AI!   與東大實驗室合作 研發出包裝喜好預測評估 AI 為了讓專案更好的步上軌道,坂元向隸屬於東京大學的山崎實驗室「求助」──他每 1.5 個月會與實驗室的副教授山崎俊彥開 1 次會。 坂元表示:「見面的時候山崎教授不只會教我編碼方面的知識,還會提出『有這樣、那樣的演算法,你為什麼不嘗試看看呢?』回去後我會用 Google 搜索相關知識,於下一次開會時報告結果。」坂元微笑道:「教授把我當成他的學生一般照顧,感覺就像我在 50 歲時考上了東大一樣。」 在山崎教授的建議下,阪元的開發方向確定為「包裝設計喜好度評估預測  AI  服務」。 2020 年 6 月,坂元與東京大學山崎實驗室共同在當年的日本 人工智慧 學會上發表論文:《使用深度學習預測包裝設計的受青睞程度》(深層学習を用いたパッケージデザインの好意度予測)。 隨後,幾乎是由阪元個人所研發的「包裝設計評估  AI 」終於開發完成。 這款  AI  可以將包裝設計的好感度以 5 分制評分,還可以直觀地看到消費者在包裝上著重於什麽地方、包裝設計方面的哪個部分會連結到喜好度等細節,整個分析過程只需要幾分鐘的時間。 ▲ AI 可以在幾分鐘內為你的包裝設計評分。 至於預測值的準確率,比較「問卷調查結果實測值」與「 AI  計算的預測值」兩者之後,得到的結果,誤差低於 5 %的結果高達七成以上,相關係數為 0.514。不同商品類別的準確率亦有些許落差,如啤酒、調味料、保養品等類別可得到很高準確率,甚至達實用階段。   被雀巢選中來決定新商品的包裝 2020 年 7 月 ,知名速溶咖啡公司雀巢宣布他們的新系列商品「雀巢咖啡黃金組合-大人的獎賞」(ネスカフェゴールドブレンド 大人のご褒美)的包裝,是採用 Plug 公司的「包裝設計評估  AI 」所輔助完成的。 ▲ 雀巢採用包裝評估 AI之產品。AI 以熱點圖的形式表達消費者最關注的地方。 雀巢表示,這次的新商品從口味、命名到包裝都十分精心考量,想帶給消費者豐富、優雅的印象,因而採用了最...

自學Python也能有如此成就!來看看這50歲副社長的經驗-上

圖片
  年過半百的他為何開始自學 Python ? 今天帶你來看看他的經歷~   目錄 年過 50 歲的日本副社長自學 Python!寫出的 AI 還被雀巢採用 一間市場研究x包裝設計公司,為什麼要自己研發 AI? 從完全不會到寫出程式 副社長一年花 1000 小時學習 AI 與東大實驗室合作 研發出包裝喜好預測評估 AI 被雀巢選中來決定新商品的包裝 從 0 經驗的大叔,變成改變整個市場型態的推手   年過 50 歲的日本副社長自學 Python!寫出的 AI 還被雀巢採用 你是否也有個轉職夢,想學  Python 、當工程師或設計  AI  軟體,卻因為擔心自己的背景、年齡、經歷而不敢往前? 那這位已經日本的 50 歲「文科」副社長坂元英樹,從完全的外行人到研發出改變產業的 AI 應用的故事,肯定能激勵你!   一間市場研究x包裝設計公司,為什麼要自己研發 AI? 故事要從坂元英樹所任職的公司「 Plug 」(株式会社プラグ)說起。 Plug 是由一間從事市場研究的公司、與一間從事包裝設計的公司於2014年合併而來,當時只是員工數約 30 人的小公司,至今已有約 70 名員工。Plug 主要提供的服務為:透過市場調查來了解消費者對商品包裝的喜愛度、偏好度與購買相關度等資訊。 ▲ Plug 是一間提供市場行銷調查和包裝設計開發業務的日本公司。 過去傳統做法是:當廠商需要決定最終要選擇 A 設計或 B 設計,Plug 便會調查數百個消費者的意見和想法,統計出哪個設計方案會讓消費者更有購買慾。 換句話說,大多數產品包裝都是由客觀的數據資料決定的。這表示 Plug 要做的是把「包裝美觀好看」這種主觀因素,轉化成「因為它在市場上會更受歡迎」這種可以明確量化的客觀因素。 ▲ 市場調查重要的地方在於把市場接受度量化成具體數字。圖為日經雜誌(日経クロストレンド)委託 Plug 調查各品牌即食沖泡湯包的包裝設計、在市場上的喜愛排行。圖片來源:Plug 官方網站。 但在各種新興技術蓬勃發展的現代,有什麼更快、更好、更準確的方法,可以數字化出「包裝設計」有多少市場接受度呢?這個問...

Python可視化的編輯器-Ryven,讓工程師不用再爆肝啦!

圖片
有了這為 Python 設計的視覺化腳本編輯器,身為工程師的你們想必現在笑得合不攏嘴~   最近一個   Python   腳本在 GitHub 上受到掀起一陣討論──因為它簡單地把原本純文字的程式碼「可視化」了,開發者還是一個大一新生! 這個適用於   Python   環境的腳本編輯器名叫「Ryven」,著重於簡單化、透明化編碼過程,並致力為使用者提供最直觀、清晰且即時的反饋: ▲ Ryven 可用簡潔的介面呈現導入圖片、調整大小、調整亮度、套用雙邊濾波器(Bilateral Filter)去噪這一系列的操作流程。 如上圖,從導入圖片、調整大小、調整亮度到套用雙邊濾波器(Bilateral Filter)去噪這一系列的操作流程,用簡潔的介面呈現出來,每個步驟都一清二楚。 ▲Ryven 也可以運算矩陣:無論是逆矩陣、共軛還是隨機變量,都能得到可視化的即時反饋 不只編輯圖片,運算矩陣也可以。無論是求逆矩陣、求共軛還是隨機變量,都能藉由可視化得到即時反饋。 Ryven 在 GitHub 上獲得了超過 1600 顆星星,完全免費且開源。讓不少人驚訝的是,Ryven 的開發者還在就讀大學一年級! 這位年少有為的開發者名叫 Leon Thomm,稱自己是一名業餘工程師,並表示自己正在就讀瑞士蘇黎世聯邦理工學院一年級,但在進入大學前就有豐富的軟體開發經驗。現階段重心在研究程式設計的可視化。 Ryven:一個為 Python 設計的視覺化腳本編輯器 Ryven 開發環境基本要求為   Python   3(推薦3.8+)、PySide2(推薦2.14+),運行跟文件中的 Ryven.py ,即可打開編輯器,也支援建立虛擬環境。 開發者特別在 Ryven 的介紹網頁提到,目前常見的程式設計可視化編輯器有兩種算法模式──資料流(data)與執行流(execution),而 Ryven 同時啟用了這兩種方法,讓使用者根據執行流程自行選擇適合的模式。 資料流:每當節點(note)的資料輸出更改,都會更新流程,並在所有連接的節點中即時更新結果。 執行流:資料不會在更改時立即更新整個流程,只有在某個節點請求輸出資料時,更新受影響的節點。 但無論哪...

來看看Tryolabs選出的2020十大Python函式庫-終

圖片
本系列文章為【2020年度十大Python函式庫-人工智慧 · 機器學習必備 】的最後一篇。上一篇介紹了 PyTorch 版的 Keras「PyTorch Lightening」讓你告別沒完沒了的 Debug!另外還有微軟出的 Hummingbird 讓你不用重新設計新模型;另外還有可以將高維度資料視覺化的「HiPlot」,請 點此 看上一篇閱讀了解!     2020十大 Python 函式庫最終回會有那些函式?壓軸登場啦! HiPlot 幾乎每個數據工程師都處理過高維度資料(High Dimensional)。可惜人類的腦容量有限,無法直觀地處理此類資料,因此必須求助於科技來解決。 2020 年早些時候,Facebook 發布了 HiPlot函式庫,可使用平行座標和其他圖形方式來表示信息,從而協助找出高維度資料中的關聯性和模式。他們在官網中說明了其概念,基本上,HiPlot 是一種將高維度資料視覺化以及過濾的便利方法。         Scalene 隨著 Python 的函式庫生態系統變得越來越複雜,我們也寫出越來越多 C 語言延伸的代碼以及多執行緒代碼。但是,CPython 內置的效能分析器(profiler)無法完整地處理多執行緒和本機代碼。 此時你需要 Scalene:Scalene 是用於 Python 腳本的 CPU 和記憶體的效能分析器(profiler),能完整地處理多執行緒代碼並區分運行 Python 和本機代碼所花費的時間。此時你無需修改代碼,只需要在命令行中使用 Scalene 運行腳本,腳本就會自動生成報告的文字檔或 HTML,顯示代碼中每一行的 CPU 和記憶體使用情況。     ▲ Scalene 是用於 Python 腳本的 CPU 和記憶體的效能分析器,能處理多執行緒代碼並區分運行 Python 和本機代碼所花費的時間   同場加映: Norfair 選出去年十大 Python 函式庫的機器學習顧問公司 Tyrolabs 自家也開發了「影像內容分析 (Video content analysis)」的 Python 函式庫「Norfair」。 Norf...

來看看Tryolabs選出的2020十大Python函式庫-3

圖片
本系列文章為【2020年度十大Python函式庫-人工智慧 · 機器學習必備 】的第三篇。上一篇介紹了美化了 Python 錯誤信息的「Pretty Errors」,堪稱是療癒系的工程師的 debug 神器、還有「Diagrams」讓工程師不需要使用設計軟體,只要使用 Python 就能畫出美輪美奐的雲系統架構圖。請 點此 看上一篇閱讀了解 。   Python 函式庫還有哪些寶藏藏在裡面?這篇繼續讓我們繼續學習!   Hydra 與 OmegaConf :結構化複雜的機器學習項目 在機器學習項目中做研究與實驗時,總是有五花八門的環境配置工作。在這些非平凡(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 代碼、抽出複雜重複的部分,讓工程師可以更專注在研究代碼上         Lighting 的原理是藉由將研究代碼...