您好,登錄后才能下訂單哦!
小編給大家分享一下Cython是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1. Cython是什么?
Cython是一個(gè)編程語言,它通過類似Python的語法來編寫C擴(kuò)展并可以被Python調(diào)用.既具備了Python快速開發(fā)的特點(diǎn),又可以讓代碼運(yùn)行起來像C一樣快,同時(shí)還可以方便地調(diào)用C library。
2. 如何安裝Cython?
跟大多數(shù)的Python庫不同,Cython需要一個(gè)C編譯器,在不同的平臺(tái)上配置方法也不一樣。
2.1 配置gcc
windows
安裝MingW-w64編譯器:conda install libpython m2w64-toolchain -c msys2
在Python安裝路徑下找到\Lib\distutils文件夾,創(chuàng)建distutils.cfg寫入如下內(nèi)容:
[build] compiler=mingw32
macOS
安裝XCode即可
linux:
gcc一般都是配置好的,如果沒有就執(zhí)行這條命令: sudo apt-get install build-essential
2.2 安裝cython庫
如果沒安裝Anaconda: pip install cython
如果安裝了Anaconda: conda install cython
3. 在Jupyter Notebook上使用Cython
首先加載Cython擴(kuò)展,使用魔術(shù)命令 %load_ext Cython
接下來運(yùn)行Cython代碼,使用魔術(shù)命令 %%cython
%load_ext Cython
%%cython
# 對1——100的自然數(shù)進(jìn)行求和
total = 0
for i in range(1, 101):
total += i
print(total)
5050
4. 試試Cython到底有多快
Python函數(shù),運(yùn)行時(shí)間261 ns
Cython函數(shù),運(yùn)行時(shí)間44.1 ns
運(yùn)行時(shí)間竟然只有原來的五分之一左右,秘訣就在于參數(shù)x使用了靜態(tài)類型int,避免了類型檢查的耗時(shí)。
4.1 Python函數(shù)
def f(x):
return x ** 2 - x
%timeit f(100)
261 ns ± 8.78 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
4.2 Cython函數(shù)
%%cython
def g(int x):
return x ** 2 - x
%timeit g(100)
44.1 ns ± 1.09 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
以上是“Cython是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。