加速python代碼運行,python運行速度快

本文目錄一覽:

北大青鳥設計培訓:怎樣才能提高Python運行效率?

python逐漸走入人們的視線,成為熱門編程語言,隨之而來,加入python培訓的准程序員大軍也成為社會熱點。

Python具有許多其他編程語言不具備的優勢,譬如能通過極少量代碼完成許多操作,以及多進程,能夠輕鬆支持多任務處理。

除了多種優勢外,python也有不好的地方,運行較慢,下面電腦培訓為大家介紹6個竅門,可以幫你提高python的運行效率。

1.在排序時使用鍵Python含有許多古老的排序規則,這些規則在你創建定製的排序方法時會佔用很多時間,而這些排序方法運行時也會拖延程序實際的運行速度。

最佳的排序方法其實是儘可能多地使用鍵和內置的sort()方法。

2.交叉編譯你的應用開發者有時會忘記計算機其實並不理解用來創建現代應用程序的編程語言。

計算機理解的是機器語言。

為了運行你的應用,你藉助一個應用將你所編的人類可讀的代碼轉換成機器可讀的代碼。

有時,你用一種諸如Python這樣的語言編寫應用,再以C++這樣的語言運行你的應用,這在運行的角度來說,是可行的。

關鍵在於,你想你的應用完成什麼事情,而你的主機系統能提供什麼樣的資源。

3.關鍵代碼使用外部功能包Python簡化了許多編程任務,但是對於一些時間敏感的任務,它的表現經常不盡人意。

使用C/C++或機器語言的外部功能包處理時間敏感任務,可以有效提高應用的運行效率。

這些功能包往往依附於特定的平台,因此你要根據自己所用的平台選擇合適的功能包。

簡而言之,這個竅門要你犧牲應用的可移植性以換取只有通過對底層主機的直接編程才能獲得的運行效率。

4.針對循環的優化每一種編程語言都強調最優化的循環方案。

當使用Python時,你可以藉助豐富的技巧讓循環程序跑得更快。

然而,開發者們經常遺忘的一個技巧是:盡量避免在循環中訪問變量的屬性。

5.嘗試多種編碼方法每次創建應用時都使用同一種編碼方法幾乎無一例外會導致應用的運行效率不盡人意。

可以在程序分析時嘗試一些試驗性的辦法。

譬如說,在處理字典中的數據項時,你既可以使用安全的方法,先確保數據項已經存在再進行更新,也可以直接對數據項進行更新,把不存在的數據項作為特例分開處理。

6.使用較新的Python版本你要保證自己的代碼在新版本里還能運行。

你需要使用新的函數庫才能體驗新的Python版本,然後你需要在做出關鍵性的改動時檢查自己的應用。

只有當你完成必要的修正之後,你才能體會新版本的不同。

使用Cython讓python代碼的速度提高30倍以上

毫無疑問,Python是社區最喜愛的編程語言!到目前為止,它是最容易使用的語言之一,因為python代碼是用一種直觀的、人類可讀的方式編寫的。

然而,你經常會反覆聽到一些對Python的抱怨,尤其是來自C語言愛好者的抱怨,這些抱怨無非就是Python很慢。

是的,他們並沒有說錯。

與許多其他編程語言相比,Python確實很慢。Benchmark game有一些比較不同編程語言在不同任務上的速度的可靠基準。

對於Python,我們有幾種不同的方法可以加快速度:

如果你所做的實際上可以並行化,比如數據預處理或矩陣運算,這些都是很好的方法。

但是如果你的代碼是純Python的呢?如果你不得不使用一個很大的for循環,且不能將數據放入矩陣中,因為數據必須按順序處理,那會怎樣?有沒有辦法加快Python本身的速度呢?

答案是肯定的,這就是Cython來加速原生Python代碼的地方。

什麼是Cython?

Cython是Python和C/C++之間的一個中間步驟。它允許你編寫純Python代碼,並且只需要做一些小修改,然後將其直接翻譯成C代碼。

使用Cython,我們將向該變量添加一個類型:

安裝Cython只需要一行簡單的pip命令:

Cython中的類型

使用Cython時,變量和函數分別有不同的類型。

對於變量我們有以下類型:

注意所有這些類型都來自C/C++ ! 而對於方法我們有以下類型:

了解了Cython類型之後,我們就可以直接實現加速了!

如何使用Cython加速你的代碼

我們要做的第一件事是設置Python代碼基準:用於計算數值階乘的for循環。原生Python代碼如下:

注意到該函數具有cpdef,以確保我們可以從Python中調用它。並且注意到到循環變量i是具有類型的。你需要為函數中的所有變量設置類型,以便C編譯器知道使用哪種類型!

接下來,創建setup.py文件,該文件將Cython代碼編譯為C代碼:

並執行編譯:

Boom ! 可以看到我們的C代碼已經編譯好了,可以使用了!

你將看到,在Cython代碼所在的文件夾中,你擁有運行C代碼所需的所有文件,包括run_cython.c文件。如果你感興趣,可以查看一下Cython生成的C代碼!

現在我們準備測試我們新的並且超級快的C代碼!查看下面的代碼,它實現了一個速度測試,將原生Python代碼與Cython代碼進行比較。

代碼非常直觀,我們以與普通Python相同的方式導入文件,並以與普通Python相同的方式運行函數!

Cython幾乎可以讓你在所有原生Python代碼上獲得良好的加速,而不需要太多額外的工作。需要注意的關鍵是,循環次數越多,處理的數據越多,Cython可以提供的幫助就越多。

下表顯示了Cython為不同的數值階乘帶來的加速性能。當數值為10000000的時候,可以看到,我們的Cython加速超過了36倍。

python代碼寫好了怎麼運行

python代碼寫好了運行的方法:首先文件地址欄輸入cmd,敲入回車;然後在對應的目錄下輸入【python hello.py】即可運行程序。

相關學習推薦:python教程

python代碼寫好了運行的方法:

1、如下圖所示,有一個hello.py的文件

2、我們直接在上面的文件地址欄輸入cmd,敲入回車

3、可以看到,直接就定位到對應的目錄下

4、我們輸入python hello.py,可以運行程序

5、當然,也可以直接運行hello.py

以上就是小編分享的關於python代碼寫好了怎麼運行的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/307218.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-02 18:06
下一篇 2025-01-02 18:06

相關推薦

  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29

發表回復

登錄後才能評論