[Python] Python加速執行運算方法-使用Cython

更新 發佈閱讀 3 分鐘


raw-image


關鍵字:python、 Cython、Model、C語言、加速、編譯、腳本、模組

Cython是將python轉換成C語言後執行,據說程式在C環境裡面執行速度高於python

以下就在Linux的作業系統下示範

先從下載安裝開始

使用pip3安裝Cython


pip3 install cython


創建資料夾


mkdir ABC

cd ABC


編寫文件hello.pyx當作程式腳本


vi hello.pyx

 

def print_hello(name):

    print "Hello %s!" % name


編寫文件setup.py,用來產生C語言腳本和model


from distutils.core import setup

from distutils.extension import Extension

from Cython.Distutils import build_ext

ext_modules = [Extension("hello",["hello.pyx"])]

setup(

    name = "Hello pyx",

    cmdclass = {'build_ext': build_ext},

    ext_modules = ext_modules

)


執行編寫產出檔案hello.so和hello.c還有目錄build

hello.c是轉換成的C語言程式

hello.so是可被調用的model


python setup.py build_ext --inplace


最後再編寫一隻程式做測試,代入剛剛產生的腳本和model


匯入模組import hello


vi hello.py

 

#!/usr/bin/python

import hello

hello.print_hello("Saioyan")



執行指令

python3 hello.py

>> Hello Saioyan

[Python] Python學習總集

 

本網站https://kk665403.pixnet.net/內之全部圖文,Saioyan梟夜所有,非經本人同意不得將全部或部分內容轉載於任何形式之媒體
Copyright © 2021 Saioyan. All rights reserved.
版權所有© 2021 Saioyan梟夜

留言
avatar-img
Saioyan的沙龍
34會員
910內容數
贊助我 https://vocus.cc/pay/donate/@kk665403?donateSourceType=exclusiveLink
Saioyan的沙龍的其他內容
2019/09/06
[Android] 在APP上放置Facebook廣告賺錢方法-facebook audience network 另外站長打個廣告,最近站長正在嘗試經營遊戲直播平台希望大家能夠幫忙追隨訂閱一下,站長真心感謝~ TWITCH直播: https://www.twitch.tv/saioyan Y
Thumbnail
2019/09/06
[Android] 在APP上放置Facebook廣告賺錢方法-facebook audience network 另外站長打個廣告,最近站長正在嘗試經營遊戲直播平台希望大家能夠幫忙追隨訂閱一下,站長真心感謝~ TWITCH直播: https://www.twitch.tv/saioyan Y
Thumbnail
2019/09/06
[Android] Java資料型態Dictionary(dict)字典使用方法 另外站長打個廣告,最近站長正在嘗試經營遊戲直播平台希望大家能夠幫忙追隨訂閱一下,站長真心感謝~ TWITCH直播: https://www.twitch.tv/saioyan Youtube: https://w
Thumbnail
2019/09/06
[Android] Java資料型態Dictionary(dict)字典使用方法 另外站長打個廣告,最近站長正在嘗試經營遊戲直播平台希望大家能夠幫忙追隨訂閱一下,站長真心感謝~ TWITCH直播: https://www.twitch.tv/saioyan Youtube: https://w
Thumbnail
2019/03/13
關鍵字:python、 Jit、Just-in-time compilation、直譯、編譯、加速、運算 即時編譯Jit(Just-in-time compilation)是一種提高程式執行效率的方法,結合靜態和動態編譯改善了直譯器的效能 Linux的下載安裝: pip install n
Thumbnail
2019/03/13
關鍵字:python、 Jit、Just-in-time compilation、直譯、編譯、加速、運算 即時編譯Jit(Just-in-time compilation)是一種提高程式執行效率的方法,結合靜態和動態編譯改善了直譯器的效能 Linux的下載安裝: pip install n
Thumbnail
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
文章探討近期銀行對於房貸申請的態度轉變,特別是財力一般的客戶面臨的困難,並介紹「國峰厝好貸」作為民間二胎房貸的選項。分析其優缺點,包括不受央行禁令影響、審核快速、核准率高等優勢,以及較高的利率(7%-16%)和民間借貸的風險。作者提醒讀者,若非走投無路,應謹慎評估,並建議諮詢專業人士。
Thumbnail
文章探討近期銀行對於房貸申請的態度轉變,特別是財力一般的客戶面臨的困難,並介紹「國峰厝好貸」作為民間二胎房貸的選項。分析其優缺點,包括不受央行禁令影響、審核快速、核准率高等優勢,以及較高的利率(7%-16%)和民間借貸的風險。作者提醒讀者,若非走投無路,應謹慎評估,並建議諮詢專業人士。
Thumbnail
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何設置Button按下(release)觸發功能,添加按鈕觸發功能和畫面轉換。
Thumbnail
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(VS Code),本篇說明如何設置Button按下(release)觸發功能,添加按鈕觸發功能和畫面轉換。
Thumbnail
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(vscode),以我實際開發的APP為例,說明如何於Label內加入canvas(帆布背景)。
Thumbnail
我的開發環境是win11,python是3.10.7版本,kivy我設定在2.1.0版本,編碼的工具是Visual Studio Code(vscode),以我實際開發的APP為例,說明如何於Label內加入canvas(帆布背景)。
Thumbnail
本文將指導你如何修改現有的 OpenCV 程式碼,使其利用 CUDA 加速進行深度神經網絡(DNN)推理,如超分辨率圖像放大任務。這將顯著提升運行速度,特別是在高分辨率圖像處理中。 在CMake上這選項要開,才可支援DNN模組。 CMake編譯OpenCV教學文 連結 [OpenCV][Py
Thumbnail
本文將指導你如何修改現有的 OpenCV 程式碼,使其利用 CUDA 加速進行深度神經網絡(DNN)推理,如超分辨率圖像放大任務。這將顯著提升運行速度,特別是在高分辨率圖像處理中。 在CMake上這選項要開,才可支援DNN模組。 CMake編譯OpenCV教學文 連結 [OpenCV][Py
Thumbnail
OpenCV 提供了專門針對 CUDA 優化的模組,這些模組使用 cv2.cuda 命名空間,並且可以直接使用 GPU 進行加速。,cv2.cuda 模塊需要在 OpenCV 編譯時啟用 CUDA 支援才能使用。 本文主要比較經過CMAKE重新編譯OpenCV使其支援Cuda,原OpenCV只支援
Thumbnail
OpenCV 提供了專門針對 CUDA 優化的模組,這些模組使用 cv2.cuda 命名空間,並且可以直接使用 GPU 進行加速。,cv2.cuda 模塊需要在 OpenCV 編譯時啟用 CUDA 支援才能使用。 本文主要比較經過CMAKE重新編譯OpenCV使其支援Cuda,原OpenCV只支援
Thumbnail
您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。 我們開發程式的時候, 常常會使用Git來管理我們的
Thumbnail
您是否苦於網路資訊爆炸嗎? 教學何其多,但卻無法好好選擇的困境呢? 歡迎加入「🔒 阿Han的軟體心法實戰營」, 這裡不給您冗餘的雜訊, 單刀直入直接送您重點, 避開選擇障礙的困境, 讓您獲得業界標準的開發起手式, 成為Top 1的頂尖人才。 我們開發程式的時候, 常常會使用Git來管理我們的
Thumbnail
在數據科學和機器學習中,特徵工程是提高模型性能的關鍵步驟之一,通過創建新特徵或轉換現有特徵,我們可以更好地捕捉數據中的信息,提高模型的預測能力。然而,當處理大數據集時,特徵工程可能變得耗時,而且若是在研發階段,特徵其實是需要快速迭代去產生並且做後續的實驗,這也是近期遇到的問題,因此想在這篇文章實作多
Thumbnail
在數據科學和機器學習中,特徵工程是提高模型性能的關鍵步驟之一,通過創建新特徵或轉換現有特徵,我們可以更好地捕捉數據中的信息,提高模型的預測能力。然而,當處理大數據集時,特徵工程可能變得耗時,而且若是在研發階段,特徵其實是需要快速迭代去產生並且做後續的實驗,這也是近期遇到的問題,因此想在這篇文章實作多
Thumbnail
最近在調整跟優化效能時,又來複習了 Multi-threading 和 Multiprocessing 的概念,在面對大數據時,能夠有效利用多核心處理器的能力,對於提升程式執行效能至關重要。 Python 提供多線程(Multi-threading) 和多進程 (Multiprocessing)
Thumbnail
最近在調整跟優化效能時,又來複習了 Multi-threading 和 Multiprocessing 的概念,在面對大數據時,能夠有效利用多核心處理器的能力,對於提升程式執行效能至關重要。 Python 提供多線程(Multi-threading) 和多進程 (Multiprocessing)
Thumbnail
How to utilize batch input and multi-processing techniques to accelerate feature engineering? 問題 在進行特徵工程的過程中,我們通常需要處理各種各樣的數據,並轉換它們成有意義的特徵,以供後續的模型訓練
Thumbnail
How to utilize batch input and multi-processing techniques to accelerate feature engineering? 問題 在進行特徵工程的過程中,我們通常需要處理各種各樣的數據,並轉換它們成有意義的特徵,以供後續的模型訓練
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News