国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

15個節省時間的Jupyter技巧!

數據分析與開發 ? 來源:DeepHub IMBA ? 2023-01-05 15:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Jupyter Notebooks使用非常簡單并且對于任何面向python的任務都可以非常方便的使用。只要它的內核處于活動狀態,就可以用數據子集運行和測試腳本,而不用每次重啟程序,這樣可以加快我們開發和測試的速度。

但是因為它太簡單了,所以我們經常會犯一些錯誤,浪費我們的時間和計算成本。在這篇文章中,我們將討論一些可以節省時間,降低計算成本的技巧。

1、魔法命令

在Jupyter notebook中,“魔法命令”是特殊的命令,不是Python語言的一部分,但可以使您的生活更輕松。這些命令前面有%符號。

魔法命令很有用,可以直接嵌入到python代碼中,并解決常見問題,例如列出當前目錄中的所有文件或更改當前工作目錄。

下面是一些常見的魔術命令:

  • %run:在當前內核中運行Python腳本。
  • %load:從腳本中加載代碼并在當前內核中運行。
  • %who:列出所有變量。
  • %timeit:記錄一行代碼的執行時間。
  • %debug:在異常處輸入調試器。
  • %matplotlib inline:在notebook中顯示圖形。
  • %load_ext:加載擴展,例如IPython擴展。
  • %pwd:打印當前工作目錄。
  • %ls:顯示當前目錄中的所有文件。

我們可以運行%lsmagic來查看所有magic命令的列表。

59a7d264-8cc9-11ed-bfe3-dac502259ad0.png

要獲得有關特定魔術命令的更多信息,可以使用?操作符,例如%run?。

2、執行另一個Jupyter notebook文件

可以使用魔術命令來做一些有趣的事情。例如,從py文件中執行python代碼,或從ipynb文件中執行jupyter notebook。

%run將執行jupyter notebook并顯示輸出,這與導入python模塊不同。

我們可以運行two-histogram notebook并得到如下輸出:

%run./two-histograms.ipynb
59c73bf4-8cc9-11ed-bfe3-dac502259ad0.png

3、查看文檔

通過高亮顯示方法并按Shift + Tab鍵,可以輕松查看該方法的文檔。它將顯示編寫函數時編寫的文檔字符串。你也可以通過點擊右上角的+按鈕來打開模態框。

還可以通過突出顯示每個magic命令并按Shift + Tab鍵來獲得有關每個magic命令的更多信息。

59d6148a-8cc9-11ed-bfe3-dac502259ad0.gif

4、添加多個游標

如果你需要重命名寫在幾個地方的變量,或者在編輯代碼時,你希望你有多個光標。

在Jupyter notebooks中,可以使用多個光標同時編輯文本。如果你想一次對多行文本進行相同的更改,這可能很有用。

要在Jupyter notebook中使用多個游標,可以按住Alt鍵并單擊所需的位置。這將在每個點擊的位置創建一個游標。然后你可以像往常一樣進行編輯,更改將同時應用于所有位置。

Windows:按住alt +左鍵并拖動光標。Mac:按住option鍵+左鍵拖動光標。

你也可以使用Shift + Alt +上/下箭頭鍵組合來選擇多行文本,并在每一行的開頭創建一個光標。

59f2619e-8cc9-11ed-bfe3-dac502259ad0.gif

記住,使用多個游標可能會產生問題,所以最好在使用這個功能之前保存好你的代碼,以防你做了任何意想不到的更改。

5、從另一個外部python腳本中插入代碼

可以用外部python腳本替換單元格的內容。你可以使用計算機上的任何python文件,也可以使用URL作為源。

#BeforeRunning
%load./hello_world.py

在下一個單元格中可以使用:

if__name__=="__main__":
print("HelloWorld!")

Output
HelloWorld!

6、運行CMD/Shell命令

Jupyter notebook中使用!命令前的前綴可以運行操作系統的命令。例如,要列出當前目錄下的文件,可以使用ls命令:

!ls

你也可以通過在命令后面添加參數來傳遞參數。例如,要列出特定目錄下的文件,可以使用-l選項以長格式顯示文件,并將目錄路徑指定為參數:

!ls-l/path/to/directory

你也可以將命令的輸賦值給一個變量,并在代碼中使用它。例如:

files=!ls
print(files)

上面代碼會把當前目錄中的文件列表分配給files變量,并打印出來。

你可以使用這種技術在Jupyter notebook中運行任何shell命令,只要該命令在運行notebook的系統中可用。

7、為程序完成設置鬧鐘

當你的模型完成訓練或任何任務時,得到一個通知總是很有幫助的。

windows 10中,我們可以使用win10toast模塊設置它。

pipinstallwin10toast

然后使用這段代碼

fromwin10toastimportToastNotifier
toaster=ToastNotifier()

#Yourprogram

toaster.show_toast("Executioncomplete",
"Yourcalculationcompleted",
duration=10)

我們在程序完成執行時為我們進行提示。

importwinsound

#setanalarmof440HZforonesecond(1000ms)
duration=1000
freq=440

winsound.Beep(freq,duration)

Mac和Linux可以使用os模塊,使用afplay命令(在macOS上)或aplay命令(在Linux上)播放聲音。

importos

#Runyourprogramhere
#Playasoundwhentheprogramcompletes
os.system("afplay/path/to/sound.mp3")#macOS
os.system("aplay/path/to/sound.wav")#Linux

可以將/path/to/sound.mp3替換為要播放的聲音文件的路徑。或者是afplay或aplay命令支持的任何音頻文件,如MP3、WAV或AIFF。

只有在運行Jupyter notebook的系統上有afplay或aplay命令時,此方法才有效。

在Mac中,還可以使用內置命令say,在程序完成時說一些話。

importos

os.system('say"hisiri"')

8、顯示執行時間

要在Jupyter notebook中測量單元格的執行時間,可以使用%timeit魔法命令。此命令將執行單個語句并返執行時間。下面是如何使用%timeit的例子:

%timeitsum(range(100))

這將計算sum函數的執行時間,并返回執行該函數所需的平均時間。

5a017b48-8cc9-11ed-bfe3-dac502259ad0.png

還可以使用%%timeit來測量整個單元格的執行時間:

%%timeit

total=0
foriinrange(1000):
total+=i
5a1a22c4-8cc9-11ed-bfe3-dac502259ad0.png

可以看到上面的代碼與我們使用使用Python中的time模塊的結果類似

importtime

start_time=time.time()

#codetomeasure
sum(range(100))

end_time=time.time()

elapsed_time=end_time-start_time
print(f'Executiontime:{elapsed_time:.2f}seconds')
5a3e9d84-8cc9-11ed-bfe3-dac502259ad0.png

注意:這些方法只會測量單元格中代碼的執行時間。如果計算單元依賴于其他計算單元或外部資源,則執行時間將不包括執行這些依賴項所需的時間。

9、在notebook之間傳遞變量

在Jupyter notebook中,%store魔法命令可以在notebook之間傳遞變量。

下面是一個使用它的例子:

var1=10
%storevar1

在另外一個notebook中可以用下面命令獲得變量的值

%store-rvar1
print(var1)

%store魔法命令有以下幾個操作

%store var1:存儲變量var1

%store -r var1:檢索存儲的變量var1,并將其賦值給當前筆記本中同名的變量

%store -d var1:刪除已存儲的變量var1

%store -z:刪除所有已存儲的變量

你也可以使用一個%store命令存儲多個值,如

%storevar1var2

%store命令僅在相同的Jupyter會話中有效。

%store命令的值在內核重啟后也是可以訪問的,看看下面這個例子。

5a9b9822-8cc9-11ed-bfe3-dac502259ad0.gif

10、列出所有鍵盤快捷鍵

學習鍵盤快捷鍵將節省你大量的時間。我們可以在頂部菜單下:幫助>鍵盤快捷鍵檢查它們,或在命令模式下按H鍵來查看。以下是Jupyter notebook中一些常用的鍵盤快捷鍵列表:

  • Enter:當前單元格進入編輯模式
  • Esc:當前單元格進入命令模式
  • Shift + Enter:運行當前單元格并移動到下一個單元格
  • Ctrl + Enter:運行當前單元格
  • Alt + Enter:運行當前單元格并在下面插入一個新單元格
  • Shift + Tab:顯示當前函數或對象的文檔
  • Ctrl + S:保存
  • A:在當前單元格的上方插入一個新單元格(在命令模式下)
  • B:在當前單元格下面插入一個新單元格(在命令模式下)
  • M:將當前單元格更改為Markdown單元格(在命令模式下)
  • Y:將當前單元格更改為代碼單元格(在命令模式下)
  • D + D:刪除當前單元格(在命令模式下)
  • Z:撤銷最后一次刪除單元格(在命令模式下)
  • X:切割選定的單元格(在命令模式下)
  • C:復制選中的單元格(在命令模式下)
  • V:粘貼選中的單元格(在命令模式下)
  • Ctrl + Shift + -將當前單元格從光標所在的位置拆分成兩個。(在命令模式下)
  • Esc + F:找到并替換你的代碼,但不替換輸出。(在命令模式下)
  • Esc + O:切換單元格輸出(在命令模式下)

選擇多個單元格:

  • Shift + Down選擇向下方向的下一個單元格。
  • Shift + Up選擇向上方向的下一個單元格。(在命令模式下)
  • Shift + M:合并多個選定單元格。(在命令模式下)

還可以使用%shortcuts魔術命令查看當前單元格輸出區域的鍵盤快捷鍵列表:

%shortcuts

這將顯示所有快捷鍵及其相應操作的列表。

11、隱藏不必要的輸出

當你從Jupyter notebook創建報告時,看到不必要的內存代碼或對象id是很煩人的。要將這些不必要的輸出隱藏在起來可以使用 分號 ;

看看下面代碼:

5af6ca12-8cc9-11ed-bfe3-dac502259ad0.png

如果想屏蔽matplotlib的輸出,看看下面代碼,注意后面的分號:

plt.plot(x,y);
5b0d16d2-8cc9-11ed-bfe3-dac502259ad0.png

12、使用python以外的其他語言編寫函數

如果你正在處理大量的大型數據集,并且numpy的速度不夠快,那么你可以直接在python代碼中直接編寫一些c或fortran代碼。

如果你想開始用c編寫函數,那么你將需要cython庫。

!pipinstallCython

加載和使用:

%load_extCython

%%cython
defmyltiply_by_2(floatx):
return2.0*x

myltiply_by_2(23.)

要編寫fortran函數,則需要另一個庫fortrain-magic。

!pipinstallfortran-magic

代碼如下:

%load_extfortranmagic

%%fortransubroutinecompute_fortran(x,y,z)
real,intent(in)::x(:),y(:)
real,intent(out)::z(size(x,1))
z=sin(x+y)
endsubroutinecompute_fortran

compute_fortran([1,2,3],[4,5,6])

13、擴展pandas輸出中的列數和行數

默認情況下,panda的dataframe只能顯示有限數量的行和列。有幾種方法可以擴展Jupyter Notebook中pandas DataFrame中顯示的行和列的數量。

方法1:使用pd.options.display.max_rows和pd.options.display.max_columns選項。

例如要顯示最多100行50列,可以使用以下代碼:

importpandasaspd

pd.options.display.max_rows=100
pd.options.display.max_columns=50

方法2:使用pd.set_option函數設置這些選項。例如:

pd.set_option("display.max_rows",100)
pd.set_option("display.max_columns",50)

或者可以使用head和tail方法來顯示DataFrame的前幾行或后幾行。例如:

df.head(10)
df.tail(5)

方法3:使用IPython中的IPython.display模塊控制顯示。例如:

fromIPython.displayimportdisplay

display(df,max_rows=100,max_columns=50)

這將顯示100行50列的DataFrame。

14、提取輸入和輸出單元數據

當你執行完一個單元格時,你意識到忘記給一個變量賦值,那怎么辦呢?

我們在jupyter notebook中執行單元格時,它將分配一個行號為ln:

5b1fdf88-8cc9-11ed-bfe3-dac502259ad0.png

當單元格完成執行時,我們會得到一個輸出并且可以通過傳遞執行編號作為索引來訪問它

5b32c7ce-8cc9-11ed-bfe3-dac502259ad0.png

Out是一個python字典,存儲單元格的所有輸出。我們可以使用編號作為索引來訪問輸出。

15、導出單元格的內容

當完成jupyter的測試我們可能會想將jupyter單元中內容導出到python文件中。最簡單的辦法是創建一個py文件并復制粘貼代碼,但這很明顯不是最好的方法。

%%writefile是一個Jupyter Notebook魔法命令,可以將單元格的內容保存為Python文件。例如在單元格中有以下代碼:

%%writefileexample.py
defadd(a,b):
returna+b
print(add(3,4))

你可以運行單元格后將在Jupyter Notebook所在的目錄中創建一個名為example.py的文件,文件內容就是單元格內的python代碼

%pycat是另外一個Jupyter Notebook魔法命令,它在Notebook的單元格中顯示Python文件的內容。如果在單元格中有以下代碼:

%pycatexample.py

它將在單元格的輸出中顯示example.py文件的內容。這對于快速查看Python文件的內容非常有用。

總結

以上就是我們總結的一些技巧,希望對你有所幫助。

審核編輯 :李倩



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

    關注

    30

    文章

    4967

    瀏覽量

    73960
  • 調試器
    +關注

    關注

    1

    文章

    328

    瀏覽量

    25085
  • python
    +關注

    關注

    57

    文章

    4876

    瀏覽量

    90025

原文標題:15個節省時間的Jupyter技巧!

文章出處:【微信號:DBDevs,微信公眾號:數據分析與開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    決策者必選的6大理由-one WFT for all

    imc新一代WFT車輪六分力傳感器高性價比、節省時間、加速原型車開發在智能化與電動化浪潮席卷全球的今天,如何高效、精準地完成底盤測試成為車企研發的關鍵挑戰。德國imc測試測量推出的新一代無線技術六分
    的頭像 發表于 03-04 09:03 ?287次閱讀
    決策者必選的6大理由-one WFT for all

    西得樂利用 CADENAS ENTERPRISE 3Dfindit 優化批量生產

    的戰略零件管理之前,Seidel 不得不手動執行許多任務,這往往會減慢甚至完全停止生產流程。自從引入ENTERPRISE 3Dfindit 后,Seidel 看到了成功,如節約成本、節省時間和更好的組織性
    發表于 01-22 13:49

    DigiKey 推出業界首款電源配置工具 使用在線工具一鍵獲取電源解決方案,省時省力,高效提速設計過程

    。 使用 DigiKey 全新的在線電源配置工具,幫助工程師、設計師和系統集成商節省時間,加快設計過程。 這款直觀的在線工具專為工程師、設計師和系統集成商開發,通過快速選擇輸出、電壓、電流等關鍵屬性,即可定制生成滿足用戶需求的電源解決方案。配置一經完成,所定制電
    的頭像 發表于 11-27 10:50 ?519次閱讀
    DigiKey 推出業界首款電源配置工具 使用在線工具一鍵獲取電源解決方案,<b class='flag-5'>省時</b>省力,高效提速設計過程

    FCC認證費用詳解:普通電子產品與帶無線功能設備的成本差異

    見的認證方式。正確區分并選擇適合的認證類型,不僅能確保合規,還能節省時間與成本。一、什么是FCCSDoC認證?適用哪些產品?FCCSDoC(Supplier'sDec
    的頭像 發表于 11-26 16:12 ?604次閱讀
    FCC認證費用詳解:普通電子產品與帶無線功能設備的成本差異

    電動機噪聲、振動和聲振粗糙度開發:使用低計算成本的系統級模型預測早期噪聲、振動和聲振粗糙度

    優勢使用計算成本低的系統級模型在動態運行條件下對電驅動裝置執行早期噪聲、振動和聲振粗糙度評估優化電機控制策略并做出更好的設計選擇,以提高電動汽車的噪聲、振動和聲振粗糙度使用Simcenter節省時間
    的頭像 發表于 08-13 11:46 ?709次閱讀
    電動機噪聲、振動和聲振粗糙度開發:使用低計算成本的系統級模型預測早期噪聲、振動和聲振粗糙度

    IAR開發工具鏈有什么優勢

    在開發安全關鍵型應用時,選擇具備成熟歷史的硬件平臺、完善的應用與診斷軟件,以及經過功能安全認證的開發工具鏈,是確保項目順利啟動并高效完成開發和認證的關鍵。這一組合不僅顯著節省時間與成本,還能幫助開發團隊應對多樣且復雜的功能安全標準要求,從容應對合規挑戰。
    的頭像 發表于 08-06 09:36 ?1115次閱讀

    日本航空攜手微軟率先將AI應用引入客艙管理

    大幅節省時間,更讓空乘能專注于服務旅客。在MicrosoftAzureAIFoundry(國際版)與SLM的賦能下,日航正迎來業務流程智能化轉型的新篇章。
    的頭像 發表于 07-18 11:12 ?1401次閱讀

    根據標題利用API實現電商多平臺同步:省時省力生成文章

    結合內容生成工具,還能自動創建吸引人的產品文章。本文將一步步解析如何實現這一過程,幫助您節省時間和精力。 1. 電商多平臺同步的挑戰與API的優勢 電商多平臺運營面臨的核心問題是數據一致性。例如,庫存更新不及時可能導致超
    的頭像 發表于 07-18 10:02 ?652次閱讀
    根據標題利用API實現電商多平臺同步:<b class='flag-5'>省時</b>省力生成文章

    3Dfindit 的協作功能

    )允許團隊成員隨時查看平臺上有多少同事,并相互共享部件。 []()節省時間和金錢 避免重復 內部系統和存儲位置往往被重復和過時的部件所占據。當零件被多次創建時,不僅會耗費公司寶貴的時間,還會花費大量資金
    發表于 06-09 14:35

    廣東超聲波清洗機的優勢及實用技巧

    高效清潔設備,逐漸受到用戶的青睞。它憑借強大的清潔能力,不僅能深層次去除污染物,還能節省時間和人力成本。那么,廣東地區的超聲波清洗機有哪些核心優勢?讓我們一起來探
    的頭像 發表于 06-03 16:44 ?640次閱讀
    廣東超聲波清洗機的優勢及實用技巧

    3Dfindit V12.9.2 新版本相關說明

    COLLABORATION 3Dfindit徹底改變您的日常工作方式 重塑戰略性零部件管理。新工具促進并優化了團隊合作。您可獲得最大的附加值: 通過重復使用零部件有效節省時間 通過減少零部件種類和標準化
    發表于 04-25 15:24

    AI在醫療健康和生命科學中的發展現狀

    NVIDIA 首次發布的“AI 在醫療健康和生命科學中的現狀”調研,揭示了生成式和代理式 AI 如何幫助醫療專業人員在藥物發現、患者護理等領域節省時間和成本。
    的頭像 發表于 04-14 14:10 ?927次閱讀

    室內智能指路牌的定位精度能達到多少

    。精準的定位能幫助人們迅速找到目的地,節省時間與精力,提升空間的使用效率。那么,室內叁仟智能指路牌的定位精度究竟能達到何種程度?接下來,我們從定位技術、影響因素、提升策略這三方面,深入探究室內叁仟智能指路牌的定位精度
    的頭像 發表于 04-01 10:37 ?879次閱讀

    低代碼/無代碼解決方案Atlassian Automation:功能優勢詳解及在Jira、Confluence、Jira Service Management中的應用指南

    在當今快節奏的工作環境中,團隊面臨著數據量激增、任務復雜化等挑戰。Atlassian Automation可幫助大規模應對這一挑戰,通過消除手動任務(如通知團隊、管理內容等單調操作),幫助團隊節省時間、減少人為錯誤并推動項目進展。
    的頭像 發表于 03-28 15:00 ?829次閱讀
    低代碼/無代碼解決方案Atlassian Automation:功能優勢詳解及在Jira、Confluence、Jira Service Management中的應用指南

    別再犯這些錯!使用樹莓派13常見雷區!

    不足、設備過熱或軟件故障——將幫助您規避許多麻煩,節省時間并減少不必要的困擾。13.初次設置過于復雜試圖一次性完成太多操作可能會導致挫敗感。RaspberryPi是
    的頭像 發表于 03-25 09:23 ?1969次閱讀
    別再犯這些錯!使用樹莓派13<b class='flag-5'>個</b>常見雷區!