日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
使用Cython加速你的Python代碼

如果您曾經(jīng)用Python編寫過代碼,那么您可能花費了比您希望的更多的時間等待某些代碼塊的執(zhí)行。雖然有一些方法可以提高代碼的效率,但是它很可能仍然比C代碼慢。這主要歸結(jié)為Python是一種動態(tài)編程語言,并將許多C在編譯期間負責(zé)的事情轉(zhuǎn)移到運行。

灤州網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。

不過,如果喜歡用Python編碼,并且仍然希望加快代碼速度,那么可以考慮使用Cython。雖然Cython本身是一種獨立的編程語言,但它很容易合并到你的工作流程中。在執(zhí)行時,Cython會將Python代碼轉(zhuǎn)換為C,通常會大大加快速度。

安裝Cython

為了能夠使用Cython,你需要一個C編譯器。因此,安裝過程因您當(dāng)前的操作系統(tǒng)而異。對于Linux,通常有GNU C編譯器(gncc)。對于Mac OS,你可以下載Xcode來獲取gncc。如果您應(yīng)該使用Windows,那么安裝過程會有點復(fù)雜。更多信息請訪問Cython的GitHub:

https://github.com/cython/cython/wiki/InstallingOnWindows

一旦你有了你的C編譯器,所有你需要運行在你的終端是:

 
 
 
  1. pip install Cython 

如何使用Cython

展示Cython功能的最簡單方法是通過Jupyter notebook。要在我們的notebook中使用Cython,我們將使用IPython magic命令。Magic命令以百分號開始,并提供一些額外的特性,以增強您的工作流程。一般來說,有兩種類型的magic命令:

  • 行magic由一個“%”表示,只對一行輸入進行操作
  • 單元格magic由兩個“%”表示,并對多行輸入進行操作。

讓我們開始:

首先,為了能夠使用Cython,我們必須運行:

 
 
 
  1. %load_ext Cython 

現(xiàn)在,每當(dāng)我們想在一個代碼單元中運行Cython時,我們必須首先在單元格中放入以下magic命令:

 
 
 
  1. %%cython 

一旦您完成了這些,您就可以開始使用Cython進行編碼了。

Cython快了多少

Cython比普通Python代碼快多少實際上取決于代碼本身。例如,如果您運行的是具有許多變量的計算開銷較大的循環(huán),那么Cython的性能將大大優(yōu)于常規(guī)Python代碼。遞歸函數(shù)也會使Cython比Python快得多。

讓我們用斐波那契序列來演示這一點。簡單地說,這個算法是通過將前兩個數(shù)相加來找到下一個數(shù)。這是它在Python中的樣子:

 
 
 
  1. def fibonacci(n):    if n < 0: 
  2.         print("1st fibonacci number = 0")    elif n == 1: 
  3.         return 0    elif n == 2: 
  4.         return 1    else: 
  5.         return fibonacci(n-1) + fibonacci(n-2) 

首先,為了能夠使用Cython,我們必須運行:

如您所見,查找序列中的第39個數(shù)字花費了13.3秒。這里的Wall time指的是函數(shù)調(diào)用從開始到結(jié)束所花費的總時間。

讓我們在Cython中定義相同的函數(shù)。

這是怎么回事?如你所見,我們在上面使用了一些細胞magic,允許我們在這個細胞中使用Cython。我稍后將解釋“-a”選項的作用。然后,我們基本上采用與上面相同的代碼,除了現(xiàn)在我們能夠使用靜態(tài)類型聲明并將n定義為integer類型。

如您所見,通過在這個神奇的命令之后添加“-a”,我們收到了注釋,這些注釋顯示了代碼中有多少Python交互。這里的目標(biāo)是去掉所有的黃線,用白色的背景代替。在這種情況下,沒有Python交互,所有代碼都將在C中運行。您還可以單擊每一行旁邊的“+”符號,查看Python代碼的C語言翻譯。

代碼快了多少?讓我們來看看:

在這種情況下,Cython大約比Python快6.75倍。這清楚地展示了利用Cython的節(jié)省時間的能力,在這方面,Cython提供了比常規(guī)Python代碼更好的改進。


網(wǎng)站題目:使用Cython加速你的Python代碼
網(wǎng)站鏈接:http://www.5511xx.com/article/dhjdjgd.html