成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Cython加速你的Python代碼

開發 后端
雖然Cython本身是一種獨立的編程語言,但它很容易合并到你的工作流程中。在執行時,Cython會將Python代碼轉換為C,通常會大大加快速度。

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

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

使用Cython加速你的Python代碼

安裝Cython

為了能夠使用Cython,你需要一個C編譯器。因此,安裝過程因您當前的操作系統而異。對于Linux,通常有GNU C編譯器(gncc)。對于Mac OS,你可以下載Xcode來獲取gncc。如果您應該使用Windows,那么安裝過程會有點復雜。更多信息請訪問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 

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

  1. %%cython 

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

Cython快了多少

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

讓我們用斐波那契序列來演示這一點。簡單地說,這個算法是通過將前兩個數相加來找到下一個數。這是它在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,我們必須運行:

使用Cython加速你的Python代碼

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

讓我們在Cython中定義相同的函數。

使用Cython加速你的Python代碼

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

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

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

使用Cython加速你的Python代碼

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

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2019-09-02 08:58:27

Python編譯器編程語言

2013-03-25 09:41:20

PythonCython

2019-10-17 09:57:08

Python設計電腦

2019-05-16 14:50:32

CythonPython編程語言

2021-01-01 14:36:03

Python開發語言

2021-04-27 06:44:03

PythonCython編程語言

2017-02-14 08:33:48

CPULinux內核

2020-05-21 08:53:12

Python技術代碼

2020-05-21 15:14:15

Python列表字典

2021-07-16 10:32:33

前端元編程代碼

2014-08-08 13:40:53

AngularJS模塊

2020-09-02 14:00:05

Python代碼腳本

2022-11-08 08:45:30

Prettier代碼格式化工具

2023-06-15 08:00:23

2020-07-01 07:41:22

Python加速代碼

2021-11-17 21:58:02

Python編程語言

2011-01-13 14:38:00

JavascriptCSSWeb

2016-10-12 13:37:09

LombokIDEidea

2023-09-19 23:17:43

Python緩存

2019-10-17 10:30:34

Python腳本語言設計
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 在线欧美亚洲 | 久草在线在线精品观看 | 91色站| 国产农村妇女毛片精品久久麻豆 | 久久精品91久久久久久再现 | 免费在线视频a | 亚洲第一色站 | 国外成人在线视频网站 | 瑞克和莫蒂第五季在线观看 | 日韩欧美专区 | 干出白浆视频 | 中文字幕爱爱视频 | 91欧美精品成人综合在线观看 | 久久久久久国产精品 | 欧美激情综合五月色丁香小说 | 伊人免费视频二 | 久久9热| 日本视频在线播放 | 中文字幕国产在线 | 国产精产国品一二三产区视频 | 国产精品毛片一区二区三区 | 美女视频黄的免费 | 午夜精品久久久久久久久久久久 | 美女黄18岁以下禁止观看 | 欧美在线一区二区三区 | 欧美色综合天天久久综合精品 | 亚洲视频在线看 | 懂色av蜜桃av | 国产在线播放av | 欧美一区二区在线视频 | 九九九久久国产免费 | 欧美1区2区 | 久久久99国产精品免费 | 可以免费观看的av | 精品欧美色视频网站在线观看 | 日本免费黄色 | 国产一区三区在线 | 综合久| 欧美久久国产精品 | 国产日韩欧美精品一区二区 | 国产精品亚洲片在线播放 |