在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Python性能分析的技巧說明

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-24 15:16 ? 次閱讀

當我們開始精通編程語言時,我們不僅希望實現最終的編程目標,而且還希望可以使我們的程序更高效。在本文中,我們將學習一些Ipython的命令,這些命令可以幫助我們對Python代碼進行時間分析。注意,在本教程中,我建議使用Anaconda。1.分析一行代碼要檢查一行python代碼的執行時間,請使用**%timeit**。下面是一個簡單的例子來了解它的工作原理:#### magics命令%timeit的簡單用法%timeit [num for num in range(20)]

#### 輸出1.08 ?s ± 43 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)主要注意事項:在要分析的代碼行之前使用%timeit它返回代碼運行的平均值和標準偏差。在上面的示例中,執行了7次,每次執行對該代碼循環100萬次(默認行為),這需要平均1.08微秒和43納秒的標準偏差。在調用magic命令時,可以自定義運行和循環的數量,示例如下:#### 在%timeit magic命令中自定義運行和循環數%timeit -r5 -n100 [num for num in range(20)]
1.01 ?s ± 5.75 ns per loop (mean ± std. dev. of 5 runs, 100 loops each)使用命令選項-r和-n,分別表示執行次數和循環次數,我們將時間配置文件操作定制為執行5次和循環100次。2.分析多行代碼本節向前邁進了一步,并解釋了如何分析完整的代碼塊。通過對%timeit magic命令進行一個小的修改,將單百分比(%)替換為雙百分比(%%),就可以分析一個完整的代碼塊。以下為示例演示,供參考:#### 使用timeblock%%代碼分析%%timeit -r5 -n1000for i in range(10): n = i**2 m = i**3 o = abs(i)
#### 輸出10.5 ?s ± 226 ns per loop (mean ± std. dev. of 5 runs, 1000 loops each)可以觀察到for循環的平均執行時間為10.5微秒。請注意,命令選項-r和-n分別用于控制執行次數和循環次數。3.代碼塊中的每一行代碼進行時間分析到目前為止,我們只在分析一行代碼或代碼塊時查看摘要統計信息,如果我們想評估代碼塊中每一行代碼的性能呢?使用Line_profiler 。Line_profiler 包可用于對任何函數執行逐行分析。要使用line_profiler軟件包,請執行以下步驟:安裝—Line_profiler 包可以通過簡單的調用pip或conda Install來安裝。如果使用的是針對Python的anaconda發行版,建議使用conda安裝#### 安裝line_profiler軟件包conda install line_profiler加載擴展—一旦安裝,你可以使用IPython來加載line_profiler:#### 加載line_profiler的Ipython擴展%load_ext line_profiler時間分析函數—加載后,使用以下語法對任何預定義函數進行時間分析%lprun -f function_name_only function_call_with_arguments語法細節:對line_profiler的調用以關鍵字%lprun開始,后跟命令選項-f命令選項之后是函數名,然后是函數調用在本練習中,我們將定義一個接受高度(以米為單位)和重量(以磅為單位)列表的函數,并將其分別轉換為厘米和千克。#### 定義函數def conversion(ht_mtrs, wt_lbs ): ht_cms = [ht*100 for ht in ht_mtrs] wt_kgs = [wt*.4535 for wt in wt_lbs]
#### 定義高度和重量列表:ht = [5,5,4,7,6]wt = [108, 120, 110, 98]
#### 使用line_profiler分析函數%lprun -f conversion conversion(ht,wt)
---------------------------------------------------------------#### 輸出Total time: 1.46e-05 s
File: <ipython-input-13-41e195af43a9>
Function: conversion at line 2
Line # Hits Time Per Hit % Time Line Contents============================================================== 2 1 105.0 105.0 71.9 ht_cms = [ht*100 for ht in ht_mtrs] 3 1 41.0 41.0 28.1 wt_kgs = [wt*.4535 for wt in wt_lbs]輸出詳細信息:以14.6微秒為單位(參考第一行輸出)生成的表有6列:第1列(行#)—代碼的行號(請注意,第#1行是故意從輸出中省略的,因為它只是函數定義語句)第2列(命中)—調用該行的次數第3列(時間)—在代碼行上花費的時間單位數(每個時間單位為14.6微秒)第4列(每次命中平均時間)—第3列除以第2列第5列(%Time)—在所花費的總時間中,花在特定代碼行上的時間百分比是多少第6列(內容)—代碼行的內容你可以清楚地看到,高度從米到厘米的轉換幾乎占了總時間的72%。結束語利用每一行代碼的執行時間,我們可以部署策略來提高代碼的效率。

希望這篇文章能給你提供幫助,你能學到一些新東西。

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 可編程邏輯
    +關注

    關注

    7

    文章

    517

    瀏覽量

    44184
  • 性能分析
    +關注

    關注

    0

    文章

    10

    瀏覽量

    8046
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    85042
收藏 人收藏

    評論

    相關推薦

    功率分析儀使用說明

    功率分析儀的使用說明主要包括安裝、設置、測量及數據分析等步驟,以下是詳細的使用指南:
    的頭像 發表于 01-28 14:55 ?105次閱讀

    Python Connector for InterBase連接解決方案

    ,以對存儲的數據執行創建、讀取、更新和刪除操作。該解決方案完全符合 Python DB API 2.0 規范,并作為 Windows、macOS 和 Linux 的 wheel 包分發。 特征 高性能
    的頭像 發表于 01-22 14:34 ?111次閱讀

    使用Python實現xgboost教程

    使用Python實現XGBoost模型通常涉及以下幾個步驟:數據準備、模型訓練、模型評估和模型預測。以下是一個詳細的教程,指導你如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發表于 01-19 11:21 ?403次閱讀

    華為云 Flexus X 實例下的場景體驗——小企業使用 Python 語言——超迅速搭建簡單公網 API 接口服務

    ,希望本文可以對小企業來說有一定的幫助作用。 目錄 前言 環境說明 連接并安裝 Python 環境 Python Web 接口編碼 上傳 WebAPI 接口代碼 安裝 flask
    的頭像 發表于 12-27 13:46 ?170次閱讀
    華為云 Flexus X 實例下的場景體驗——小企業使用 <b class='flag-5'>Python</b> 語言——超迅速搭建簡單公網 API 接口服務

    對比Python與Java編程語言

    使得編寫代碼更加靈活,但也可能導致運行時錯誤。 Java 語法相對冗長,需要顯式聲明變量類型,增加了代碼的可讀性和安全性。 靜態類型系統在編譯時進行類型檢查,減少了運行時錯誤。 二、性能 Python 解釋型語言,運行速度通常比Java慢,但對于許多應用場景
    的頭像 發表于 11-15 09:31 ?444次閱讀

    使用Python進行圖像處理

    下面是一個關于使用Python在幾行代碼中分析城市輪廓線的快速教程。
    的頭像 發表于 11-07 10:14 ?280次閱讀
    使用<b class='flag-5'>Python</b>進行圖像處理

    單片機STM32可以用Python寫嗎?可以的開發板有哪些?

    近年來,隨著嵌入式技術的發展,Python語言逐漸被引入到單片機開發中,尤其是一些高性能的單片機上。這一趨勢給開發者帶來了極大的便利,尤其是在快速原型設計和實驗中。本文將詳細探討STM32單片機是否
    的頭像 發表于 09-05 08:00 ?4504次閱讀
    單片機STM32可以用<b class='flag-5'>Python</b>寫嗎?可以的開發板有哪些?

    pytorch和python的關系是什么

    在當今的人工智能領域,Python已經成為了最受歡迎的編程語言之一。Python的易學易用、豐富的庫和框架以及強大的社區支持,使其成為了數據科學、機器學習和深度學習等領域的首選語言。而在深度學習領域
    的頭像 發表于 08-01 15:27 ?2360次閱讀

    Python建模算法與應用

    Python作為一種功能強大、免費、開源且面向對象的編程語言,在科學計算、數學建模、數據分析等領域展現出了卓越的性能。其簡潔的語法、對動態輸入的支持以及解釋性語言的本質,使得Python
    的頭像 發表于 07-24 10:41 ?663次閱讀

    Python在AI中的應用實例

    Python在人工智能(AI)領域的應用極為廣泛且深入,從基礎的數據處理、模型訓練到高級的應用部署,Python都扮演著至關重要的角色。以下將詳細探討Python在AI中的幾個關鍵應用實例,包括機器學習、深度學習、自然語言處理、
    的頭像 發表于 07-19 17:16 ?1367次閱讀

    opencv-python和opencv一樣嗎

    不一樣。OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺和機器學習軟件庫,它提供了大量的圖像和視頻處理功能。OpenCV-Python
    的頭像 發表于 07-16 10:38 ?1405次閱讀

    網絡爬蟲,Python和數據分析

    電子發燒友網站提供《網絡爬蟲,Python和數據分析.pdf》資料免費下載
    發表于 07-13 09:27 ?2次下載

    用pycharm進行python爬蟲的步驟

    以下是使用PyCharm進行Python爬蟲的步驟: 安裝PyCharm和Python 首先,您需要安裝PyCharm和Python。PyCharm是一個流行的Python集成開發環境
    的頭像 發表于 07-11 10:11 ?954次閱讀

    SAGE算法的性能分析

    電子發燒友網站提供《SAGE算法的性能分析.pdf》資料免費下載
    發表于 02-28 10:38 ?0次下載

    基于Python的地圖繪制教程

    本文將介紹通過Python繪制地形圖的方法,所需第三方Python相關模塊包括 rasterio、geopandas、cartopy 等,可通過 pip 等方式安裝。
    的頭像 發表于 02-26 09:53 ?1312次閱讀
    基于<b class='flag-5'>Python</b>的地圖繪制教程
    主站蜘蛛池模板: 久久噜噜噜久久亚洲va久 | 在线天堂中文官网 | 久久精品国产免费看久久精品 | 天天舔天天色 | 黄色网视频 | 婷婷综合七月激情啪啪 | 国产精品日韩欧美亚洲另类 | 女女色综合影院 | 好爽好深太大了再快一点 | 久久美女性网 | 国产在线视频欧美亚综合 | 1024手机在线看永久免费 | 特黄特黄一级高清免费大片 | 六月激情网 | 亚洲欧美精品 | 夜操| 国产在线99 | 午夜在线播放视频在线观看视频 | 久久精品国产亚洲aa | 老司机精品视频免费 | 黄网站视频在线观看 | 玖玖国产 | 久久天天躁狠狠躁夜夜躁综合 | 2021国产成人午夜精品 | 曰本女人色黄网站 | 好大好硬好深好爽想要免费视频 | 32pao强力打造免费高速高清 | 午夜小视频在线观看 | 69日本xxxxhd| 狼狼色丁香久久女婷婷综合 | 69日本xxxxxxxxx内谢 | 一本大道加勒比久久综合 | 天天干天天综合 | 理论片久久 | 日日夜夜天天干 | 四虎最新永久在线精品免费 | 亚洲香蕉影视在线播放 | 夜夜视频 | 日本黄色大片在线观看 | 色网站在线播放 | 激情爱爱的免费视频 |