溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Cython是什么

發(fā)布時(shí)間:2022-03-25 10:53:13 來源:億速云 閱讀:188 作者:小新 欄目:web開發(fā)

小編給大家分享一下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è)資訊頻道!

向AI問一下細(xì)節(jié)

免責(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)容。

AI