0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

探討Python的優(yōu)缺點及入門方法

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Stephen Cassar ? 2022-06-20 16:36 ? 次閱讀

Python 今年 30 歲了,但你不會知道。根據 2019 年 Stack Overflow 調查,高級動態(tài)編程語言仍然是增長最快的主要編程語言,超過了 Java,并且是人工智能開發(fā)人員最想要的語言。2021 年 1 月,Python 創(chuàng)紀錄地第四次獲得 TIOBE 年度最受歡迎編程語言獎。該獎項授予一年內最受歡迎的編程語言。

這就引出了一個問題:為什么有這么多開發(fā)人員可以從 500 多種語言中進行選擇,而且每年都會編寫更多的語言?答案可能在于 Python 的簡單性。

許多語言都承諾學習曲線短而平坦,但今天的開發(fā)人員需要更大的靈活性。當他們嘗試不同的堆棧和技術時,他們很快意識到 Python 幾乎可以輕松完成所有他們需要的事情。這部分是因為與其他語言相比它使用起來多么容易。一個初出茅廬的開發(fā)人員可以在幾分鐘內構建和運行一個簡單的 Hello World Python 應用程序。但通常達成交易的是該語言的內置靈活性,它支持多種編程范式,并且能夠以更少的工作量進行開發(fā)。

Python 從一開始只是一種便于簡單任務編程、自動化腳本和快速應用程序原型設計的工具,現(xiàn)已上升到一流語言的地位。例如,Instagram 最近在語言上加倍下注,選擇在 10 個月內分三個階段將其核心堆棧升級到 Python 3,盡管其母公司 Facebook 嚴重依賴 PHP:超文本預處理器 (PHP) 的核心架構。經過分析,Instagram 簡單地確定 PHP 在性能方面沒有顯著優(yōu)勢,尤其是隨著該語言的每個新版本都在不斷提高速度。也可能是 Python 的人工智能和機器學習能力是一個考慮因素。

微軟似乎也認識到 Python 的重要性。2020 年 11 月 12 日,創(chuàng)建 Python 的荷蘭程序員 Guido Van Rossum 宣布他即將退休,加入微軟的開發(fā)人員部門。其他依賴 Python 的公司包括亞馬遜、工業(yè)光魔、Netflix、Reddit、谷歌和 Spotify。由于諸如此類的重擊者推動了全球對 Python 開發(fā)人員的需求,它不會很快消失,因此每個開發(fā)人員都考慮將 Python 添加到武器庫中是有意義的。

復雜世界的簡單解決方案

開發(fā)團隊嘗試使用最新技術構建復雜系統(tǒng)只是為了中途放棄他們的努力并返回到更簡單的編程語言(如 C++ 或 Python)并不是聞所未聞的。有時,需要的是大型柴油發(fā)動機,而不是花里胡哨的雙渦輪增壓 4 缸,如果你能在規(guī)劃階段弄清楚這一點,它可以為每個參與者節(jié)省很多心痛,時間,還有錢。

人工智能的興起讓開發(fā)人員利用 Python 在數(shù)據科學、數(shù)據分析等方面的潛力。Python 的子集機器學習和深度學習 (DL) 是最簡單的語言如何解決最初創(chuàng)建程序時不存在的問題的絕佳示例。

聰明的開發(fā)人員會為每個問題找到最簡單的解決方案,無論它最初看起來多么復雜。

pYYBAGKwMjyAALljAAHt86Odwjo162.png

亞馬遜采用了這種方法,并將賭注押在 Python 的機器學習能力上,選擇它作為其 DeepLens 設備庫的核心。Python 看到了簡化機器學習任務的真正需要,這些任務通常需要實現(xiàn)高維數(shù)據和手動流程。

Python 的強大功能極大地簡化了圖像識別、特征提取和對象檢測等任務。這使 AWS DeepLens 項目能夠使用神經網絡通過計算機視覺項目、教程和動手探索使用開發(fā)人員可以觸摸和感覺的物理設備(例如 AWS DeepLens 相機)進行學習和預測。

AWS DeepLens 的設備庫由一組不同的 Python 模塊組成,這些模塊公開對象和各種設備操作方法。結果是深度學習模型可以在相機上本地運行,以分析并對其所看到的內容采取行動。即使您從未打算在生產中使用該平臺,也可以拿起其中一臺相機并探索模塊。嘗試使用諸如此類的工具可以幫助開發(fā)人員磨練他們的手藝。

為什么Python Excel?

Python 是數(shù)據分析和數(shù)字運算的理想選擇,這解釋了為什么大多數(shù)涉及 ML 和數(shù)據科學的庫都有 Python 接口。但是 Python 不僅僅是開始學習這些學科的好方法。開發(fā)人員可以選擇采用最適合他們需求的范式:函數(shù)式、命令式、面向對象、結構化或反射式。Python 支持所有五個。

Python 在簡化復雜性方面處于最佳狀態(tài)。例如,在處理數(shù)字時,Python 擅長極快并且可以使用復雜的數(shù)學。它還具有簡單的語法來實現(xiàn)諸如兩個字符串相加之類的基本計算,一直到構建具有其固有復雜性的 ML 模型。

簡單也意味著用戶編寫更少的代碼。Python 支持預定義的包,實際上消除了算法編碼。對于需要的代碼,理解、更改、復制和共享都大大簡化了。這有助于 Python 開發(fā)人員社區(qū)通過免費和高效的算法、想法和工具交流而蓬勃發(fā)展。

Python 很靈活。Python 提供了選擇面向對象編程 (OOP) 或腳本的選項,它可以在多個平臺上運行,包括 Windows、macOS、Linux 和 Unix。使用 PyInstaller 將代碼從一個平臺移植到另一個平臺。

Python 有大量的社區(qū)、組和論壇,程序員可以在其中幫助解決問題。許多資源可供初學者和專業(yè)人士使用,因此您永遠不會孤單。數(shù)百個預建庫也可用于實現(xiàn) ML 和 DL 算法。安裝包通常只需要一個命令。

免費、簡單和開源,Python 已進入一些最復雜的技術,并被行業(yè)巨頭、開發(fā)人員、數(shù)據科學家、ML 工程師和初學者等使用。

流行的 Python 庫

一門優(yōu)秀的語言需要大量的庫選擇才能茁壯成長,這也是 Python 成為人工智能最流行的編程語言的主要原因之一。Python 庫模塊包含基本級別的項目,無需每次都對其進行編碼。

例如,NumPy 有助于高效管理多維數(shù)組,并具有出色的隨機功能。它還包含用于集成 C/C++ 和 Fortran 代碼的工具。Pandas 幫助處理 Python 中的二維數(shù)據表。盡管 SQL 也這樣做,但 Pandas 更容易在代碼中執(zhí)行。僅這兩個庫就可以節(jié)省開發(fā)人員的時間。

Matplotlib 雖然不是最容易使用的,但將為開發(fā)人員節(jié)省大約六個可重復使用的基本折線圖和散點圖的代碼塊。使用 Matplotlib 可以非常快速地創(chuàng)建圖表、直方圖和繪圖,以便更好地理解數(shù)據、有效呈現(xiàn)和可視化。

Scikit-Learn 是 Python 程序員應該用于 AI /ML 的第一個庫。它處理回歸方法、分類方法和聚類、模型驗證和模型選擇,并使降維和特征提取變得輕而易舉。轉向更高級的,Scipy(不要與 Scipy 堆棧混淆)為集成、插值和優(yōu)化等復雜的機器學習過程提供核心數(shù)學方法。Scikit-Learn 嚴重依賴 Scipy 庫,因此將其移至列表頂部。

使用 Python 創(chuàng)建快速、干凈的原型

創(chuàng)建原型通常需要數(shù)小時的編譯、調試、編輯、重新編譯、調試……你懂的。Python 是原型設計的理想選擇,因為它只允許編寫和測試幾行代碼,而無需編譯或使用 Makefile。它是高級別的,因此內存管理或垃圾收集等低級細節(jié)不是問題。

開始使用模塊并從那里構建。存在許多簡單且有據可查的 Python 模塊。該語言非常流行,用戶如此之多,以至于一個小組中的幾個人可能會閱讀您的代碼并幫助您將其完成。因為您的 Python 項目也將在大多數(shù)平臺上運行,所以開發(fā)人員不需要分支代碼或維護單獨的存儲庫。

值得探索的 Python 工具

使用庫可以幫助顯著加快開發(fā)速度。很有可能,有人已經編寫了所需的功能。開發(fā)人員可以將 Python 的內置成像庫或 MayaVi 和 VTK 3D 可視化工具包用于科學和數(shù)字應用程序?;蛘?,開發(fā)人員可以考慮將 ScientificPython 和 Numeric Python 用于數(shù)值和科學應用程序。

很有可能,有一個庫可以幫助開發(fā)人員快速跟蹤項目。以下是值得探索的五個社區(qū)最愛的列表。

Selenium 構成了無數(shù)瀏覽器自動化工具、應用程序編程接口 (API) 和框架的核心技術。它使 Web 應用程序自動化以進行測試。Selenium 使數(shù)據抓取項目更容易,并且通常將復雜的例程減少到幾行代碼。

Gooey 只需幾行代碼即可將 Python 命令行程序轉變?yōu)榫哂袌D形用戶界面的成熟應用程序,從而使共享工具變得更加容易,無論技能水平如何。Gooey 還提供簡單的日期和時間輸入。

Pyinstaller 使用傳輸壓縮創(chuàng)建小型、高效、獨立的可執(zhí)行文件。它是多平臺的,極大地簡化了可執(zhí)行文件的創(chuàng)建。

PYNQ(Zynq 的 Python 生產力)利用 Xilinx 器件在應用中的優(yōu)勢,無需使用 ASIC 風格的設計工具來設計可編程邏輯電路。

英特爾 Python 分發(fā)版可加速 Python 并加速計算包。它使開發(fā)人員可以創(chuàng)建和加速可擴展的應用程序和服務,釋放現(xiàn)代硬件的力量,并輕松實現(xiàn)算法。

Python 的局限性

引用一位系統(tǒng)架構師朋友的話:“項目的完美語言就是項目的完美語言?!?/p>

我們已經討論了 Python 的許多優(yōu)勢,尤其是在數(shù)據科學和腳本領域的數(shù)字運算方面。但是沒有一種語言對所有應用程序都是完美的,Python 也不例外。了解 Python 的局限性將有助于開發(fā)人員更好地確定它是否適合他們的項目。Python 在性能、應用程序打包和項目管理方面受到影響,總結了它的局限性。其他缺點包括:

Python 是一種高級語言。因為它比低級語言更遠離硬件,所以速度較慢。

Python 不適合移動開發(fā)。

Python 使用靈活的數(shù)據類型,無法將其用于內存密集型任務。

高內存消耗。

Python 的數(shù)據庫訪問層是原始的。對于需要復雜遺留數(shù)據平滑交互的企業(yè)來說,這不是一個好的選擇。

因為 Python 是動態(tài)類型的,所以它需要更多的測試并且只有在運行時才會出現(xiàn)錯誤。

盡管每種方法都可以采用優(yōu)雅的解決方法,但對于依賴于讀取和操作任務關鍵型應用程序的遺留數(shù)據的移動開發(fā)或企業(yè)而言,Python 通常不是正確的選擇。

開始你的第一個 Python 項目

任何語言的入門都需要時間,雖然 Python 很容易上手,但建議初學者參考盡可能多的資源。要加入的一個學習資源是 PythonistaCafe,一個點對點學習社區(qū)。這個僅限邀請的小組提供了大量專門針對 Python 的練習、活動和聚會,所有這些都在隨處可見的最佳運行環(huán)境之一中進行。

請務必查看嘗試解決特定問題的項目。以下是要查看的開源項目的簡短列表:

OpenCog 正在創(chuàng)建具有人類能力的人工智能 (AGI) 項目。它用于 SingularityNET 項目和 Hanson Robotics 項目,為 Sophia 和其他機器人提供智能。

人工智能研究所(不來梅大學計算機科學學院的一部分)研究人工智能并舉辦旨在推進人工智能技術的研討會和活動。他們致力于支持現(xiàn)有的人工智能項目和教育。

Zulip 被稱為“世界上最高效的團隊聊天”,每天可以處理數(shù)千條實時消息。Zulip 為團隊提供了清晰的組織、異步通信和其他巨大優(yōu)勢。

Magenta 是一個 Python 庫和研究項目。它的目標是使用人工智能來創(chuàng)作音樂和藝術。它可以創(chuàng)建圖像、歌曲,甚至生成繪圖,使藝術家能夠探索新的創(chuàng)作方式。

MailPile 是一個創(chuàng)新的電子郵件客戶端,專注于安全和私密的通信。它速度快,沒有廣告,并帶有強大的搜索功能、隱私和加密功能。

概括

開發(fā)人員學習新語言的三個主要原因:

因為他們必須:也許與您合作的開發(fā)團隊決定用 Python 構建一些東西,或者您正在申請的工作需要有 Python 經驗的開發(fā)人員。

為了好玩:如果你感到無聊或只是想嘗試 AI、ML 或 DL,Python 會叫你的名字。

解決問題:也許您在項目中使用的語言遇到了障礙。Python 可能值得一試。

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AI
    AI
    +關注

    關注

    87

    文章

    29425

    瀏覽量

    267723
  • 人工智能
    +關注

    關注

    1789

    文章

    46392

    瀏覽量

    236581
  • python
    +關注

    關注

    54

    文章

    4759

    瀏覽量

    84296
收藏 人收藏

    評論

    相關推薦

    三相異步電動機的調速方法有哪些優(yōu)缺點

    三相異步電動機的調速方法有很多種,每種方法都有其特定的應用場景和優(yōu)缺點。以下是一些常見的調速方法及其優(yōu)缺點的分析: 變極調速 變極調速是通過
    的頭像 發(fā)表于 10-12 15:31 ?350次閱讀

    探討差分信號的優(yōu)缺點

    在現(xiàn)代電子設計和信號傳輸領域,差分信號傳輸技術憑借其出色的抗干擾能力和穩(wěn)定的時序特性受到廣泛青睞。然而,差分信號存在一些局限性和挑戰(zhàn)。接下來我們將探討差分信號的優(yōu)缺點。 差分信號的優(yōu)點 首先,我們來
    的頭像 發(fā)表于 09-10 10:30 ?351次閱讀

    AI大模型與小模型的優(yōu)缺點

    在人工智能(AI)的廣闊領域中,模型作為算法與數(shù)據之間的橋梁,扮演著至關重要的角色。根據模型的大小和復雜度,我們可以將其大致分為AI大模型和小模型。這兩種模型在定義、優(yōu)缺點及應用場景上存在著顯著的差異。本文將從多個維度深入探討AI大模型與小模型的特點,并分析其各自的
    的頭像 發(fā)表于 07-10 10:39 ?1927次閱讀

    人臉檢測的五種方法各有什么特征和優(yōu)缺點

    人臉檢測是計算機視覺領域的一個重要研究方向,主要用于識別和定位圖像中的人臉。以下是五種常見的人臉檢測方法及其特征和優(yōu)缺點的介紹: 基于膚色的方法 特征:基于膚色的方法主要利用人臉膚色與
    的頭像 發(fā)表于 07-03 14:47 ?513次閱讀

    直線電機有哪些優(yōu)缺點

    隨著現(xiàn)代工業(yè)的快速發(fā)展,對于直線運動控制的需求日益增加。直線電機作為一種新型的驅動裝置,因其獨特的結構和性能優(yōu)勢,正在逐步取代傳統(tǒng)的旋轉電機和滾珠絲杠,成為直線運動控制的主流選擇。本文將對直線電機的優(yōu)缺點進行詳細分析,并探討其在實際應用中的注意事項。
    的頭像 發(fā)表于 06-11 18:00 ?1927次閱讀

    nbiot和lora的優(yōu)缺點是什么?

    nbiot和lora的優(yōu)缺點
    發(fā)表于 06-04 06:37

    電流源逆變器的接線方法優(yōu)缺點

    電流源逆變器,作為電力電子領域的重要設備,其接線方法和性能特點對于整個系統(tǒng)的穩(wěn)定性和效率具有重要影響。本文將詳細探討電流源逆變器的接線方法,并深入分析其優(yōu)缺點,以期為相關領域的工程師和
    的頭像 發(fā)表于 05-24 16:13 ?952次閱讀

    常用的無損檢測方法有哪些?有何優(yōu)缺點

    、建筑、電力、交通等領域。以下是一些常用的無損檢測方法及其優(yōu)缺點: 超聲波檢測(Ultrasonic Testing,簡稱UT) 優(yōu)點: a. 檢測速度快,效率高。 b. 對材料的厚度和形狀適應性強。 c. 能檢測到材料內部的缺陷,如裂紋、氣孔、夾雜等。 d. 可實現(xiàn)自動
    的頭像 發(fā)表于 05-24 15:15 ?1017次閱讀

    電阻應變片接橋不同方法有什么優(yōu)缺點?

    電阻應變片的接橋方法通常有三種基本形式:四分之一橋(1/4橋)、半橋(1/2橋)和全橋(全橋)。每種方法都有其特定的應用場景和優(yōu)缺點
    的頭像 發(fā)表于 05-16 17:14 ?3018次閱讀

    日本大帶寬服務器優(yōu)缺點分析

    日本大帶寬服務器是很多用戶的選擇,那么日本大帶寬服務器優(yōu)缺點都是什么?Rak部落小編為您整理發(fā)布日本大帶寬服務器優(yōu)缺點分析。
    的頭像 發(fā)表于 03-22 10:08 ?392次閱讀

    數(shù)組和鏈表在內存中的區(qū)別 數(shù)組和鏈表的優(yōu)缺點

    數(shù)組和鏈表在內存中的區(qū)別 數(shù)組和鏈表的優(yōu)缺點? 數(shù)組和鏈表是常見的數(shù)據結構,用于組織和存儲數(shù)據。它們在內存中的存儲方式以及優(yōu)缺點方面存在一些顯著的差異。本文將詳細探討這些差異以及它們的優(yōu)缺點
    的頭像 發(fā)表于 02-21 11:30 ?776次閱讀

    變頻器旁路安裝的優(yōu)缺點

    并聯(lián)連接,使其在需要時可以被旁路繞過。本文將詳盡、詳實、細致地介紹變頻器旁路安裝的優(yōu)缺點,并探討其影響因素。 一、變頻器旁路安裝優(yōu)點 1. 變頻器壞死情況下不影響電機運行: - 當變頻器出現(xiàn)故障或需要維修時,通過旁路安
    的頭像 發(fā)表于 02-01 14:48 ?1537次閱讀

    電動機調速方式的優(yōu)缺點

    的調速控制。下面將分別從機械調速和電子調速的優(yōu)缺點進行詳細探討。 一、機械調速的優(yōu)缺點 1. 優(yōu)點: (1)機械調速結構簡單,易于理解和操作。機械調速一般采用變速箱、齒輪傳動或皮帶傳動等簡單的機械裝置來實現(xiàn)調速,具有結構
    的頭像 發(fā)表于 01-04 11:26 ?1017次閱讀

    直流電機的調速方法 調速方法優(yōu)缺點

    直流電機的調速方法 調速方法優(yōu)缺點? 直流電機是一種廣泛應用于工業(yè)和家用電器中的電動機,它通過控制電流的大小和方向,實現(xiàn)對轉速的精確調控。以下將詳細介紹直流電機的調速方法及其
    的頭像 發(fā)表于 12-21 14:13 ?3762次閱讀

    常見開關電源優(yōu)缺點對比

    常見開關電源優(yōu)缺點對比
    的頭像 發(fā)表于 12-07 15:30 ?626次閱讀
    常見開關電源<b class='flag-5'>優(yōu)缺點</b>對比