JupyterNotebook‘s Magic

      網友投稿 743 2025-04-02

      事情的起因是這樣子的:

      上個星期在看代碼的時候,一個意外讓我了解到了jupyternotebook上的黑魔法。是這樣子的:

      這么騷?可以這么玩?

      代碼上面直接加了個%%time(具體這個百分號是一個還是兩個我還沒搞清楚,別人敲的是兩個,我敲兩個就報錯,敲一個就OK,具體情況就需要你們在jupyter上試試了),這樣可以算出代碼的耗時。

      我在python上試了試,報錯,不行,后來去了jupyter上面發現是OK的,也就說這個統計耗時的黑魔法只能在jupyter上運行???

      我們一般統計耗時都是使用結束時間減去開始時間的:

      st = time.time()

      task_mail(self)

      end = time.time()

      print("任務使用耗時", end - st)

      但是有了jupyter后,這一切都變了:

      一個百分號解決問題。

      如果我們想計算一個循環的耗時,可以這么寫:

      輸出:

      CPU times: user 4 ms, sys: 0 ns, total: 4 ms

      Wall time: 5.6 ms

      除了這個,jupyter還有一個叫timeit的東西,這個東西就更不得了了,它能細算到每一步的耗時!

      我們來看看:

      輸出結果:

      3.3 ms ± 171 μs per loop (mean ± std. dev. of 7 runs, 100 loops each)

      驚呆了!他能把循環每一步的耗時都清楚的計算出來!!!精確到微秒級!!

      但是其實按照結果來看,這兩者之間的結果并不一致,這是為什么呢?

      大家都知道,python是有垃圾回收機制的,而這個垃圾回收機制是占用耗時的。而timeit()會在計時期間暫時關閉垃圾回收機制,所以耗時也就更短。

      %真是神奇,這是為什么呢?

      Magic 關鍵字是可以在單元格中運行的特殊命令,能讓你控制 notebook 本身或執行系統調用(例如更改目錄)。

      又例如,在 notebook 中可以使用?%matplotlib?將 matplotlib 設置為以交互方式工作。

      輸出:

      notebook 允許將圖像與文本和代碼一起嵌入。在使用?matplotlib?或其他繪圖包創建可視化內容時很有用。

      在 notebook 中可以使用?%matplotlib?將?matplotlib?設置為以交互方式工作。默認情況下,圖形呈現在各自的窗口中。但是,你可以通過命令傳遞參數,以選擇特定的“后端”(呈現圖像的軟件)。要直接在 notebook 中呈現圖形,應將通過命令?%matplotlib inline?內聯后端一起使用。

      Magic 命令的前面帶有一個或兩個百分號(%?或?%%),分別對應行 Magic 命令和單元格 Magic 命令。行 Magic 命令僅應用于編寫 Magic 命令時所在的行,而單元格 Magic 命令應用于整個單元格。

      對于 Python 內核,可以使用 Magic 命令?%pdb

      JupyterNotebook‘s Magic

      來看看還有哪些其他的%魔法吧!

      %alias

      為系統命令定義別名。

      ' %alias alias_name cmd '將' alias_name '定義為' cmd '的別名

      然后,輸入' alias_name params '將執行系統命令' cmd params '(從您的底層操作系統)。

      別名的優先級低于magic函數和Python普通變量,因此如果“foo”既是Python變量又是別名,那么別名在“del foo”刪除Python變量之前不能執行。

      %autoawait

      允許更改自動等待選項的狀態。

      這允許設置特定的異步代碼運行器。

      如果沒有傳遞值,請打印當前使用的異步集成以及它是否被激活。

      %autocall

      使函數可調用,而不必鍵入括號。

      %bookmark

      管理IPython的書簽系統。

      %cd

      和shell命令一樣,更改當前的工作目錄

      %conda

      安裝包使用的(類似于!pip install [pkgs])

      %conda install [pkgs]

      %debug

      激活交互式調試器。

      這個神奇的命令支持兩種激活調試器的方法。一種是在執行代碼之前激活調試器。通過這種方式,您可以設置斷點,從該點開始逐步執行代碼。可以使用此模式,方法是提供要執行的語句和一個斷點。

      另一種方法是在死后模式下激活調試器。您可以激活此模式,只需運行%debug而不帶任何參數。如果一個異常剛剛發生,這允許您交互式地檢查它的堆棧幀。注意,這將始終只在發生的最后一次回溯上工作,所以必須在希望檢查的異常觸發之后快速調用這個函數,因為如果發生了另一個異常,它會重擊前一個異常。

      %dirs

      返回到當前的目錄。

      %env

      獲取或設置環境變量。

      還有很多就不一一介紹了,大家可以看看API文檔:

      https://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-autoawait

      點擊原文可以直達哦!

      “希望各位喜歡的可以點個贊!”

      Jupyter notebook Python

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:格式轉換函數(函數樣式轉換)
      下一篇:如何在wps表中設置連續行號(wps如何顯示行號)
      相關文章
      国产精品亚洲一区二区三区久久 | 久久亚洲精品专区蓝色区| 亚洲爽爽一区二区三区| 亚洲六月丁香婷婷综合| 亚洲另类精品xxxx人妖| 久久久久久a亚洲欧洲aⅴ| 亚洲一区二区视频在线观看| 亚洲日韩中文字幕日韩在线 | 亚洲人成日本在线观看| 亚洲精品成人久久| 18亚洲男同志videos网站| 亚洲美女视频一区| 亚洲国产精品无码久久SM| 亚洲va久久久噜噜噜久久| 亚洲精品国产成人片| 久久久无码精品亚洲日韩蜜桃 | 亚洲精品高清久久| 精品日韩亚洲AV无码 | 日韩精品亚洲专区在线观看| MM1313亚洲国产精品| 妇女自拍偷自拍亚洲精品| 国产亚洲美女精品久久| 国产精品亚洲а∨无码播放不卡 | 亚洲国产精品网站在线播放 | 色在线亚洲视频www| 97久久国产亚洲精品超碰热| 亚洲看片无码在线视频| 亚洲偷自拍另类图片二区| 久久久久亚洲AV无码去区首| 亚洲国产成人五月综合网 | 精品国产亚洲男女在线线电影 | 国产亚洲精品成人久久网站| 亚洲伊人久久综合影院| 亚洲女初尝黑人巨高清| 亚洲国产精品无码专区| 亚洲大成色www永久网站| 中文字幕亚洲免费无线观看日本| 亚洲成人一级电影| 亚洲欧美日韩中文二区| 亚洲国产成人久久精品99 | 亚洲午夜理论片在线观看|