色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

    文章

    4823

    瀏覽量

    68902
  • 調試器
    +關注

    關注

    1

    文章

    306

    瀏覽量

    23806
  • python
    +關注

    關注

    56

    文章

    4807

    瀏覽量

    84956

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

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

收藏 人收藏

    評論

    相關推薦

    使用瑞薩AnalogPAK SLG47001/03節省開發時間

    在當今快速發展的技術市場中,對更快、更高效的產品開發的需求比以往任何時候都高。企業一直在尋找簡化流程和縮短上市時間的方法。有助于節省時間、簡化設計和降低成本的產品對于保持競爭力至關重要。
    的頭像 發表于 12-12 10:54 ?259次閱讀
    使用瑞薩AnalogPAK SLG47001/03<b class='flag-5'>節省</b>開發<b class='flag-5'>時間</b>

    快充電線:高效充電體驗的必備神器

    線是指支持快速充電技術的充電線。它們采用優化的電路設計和高質量的材料,能夠以更快的速度為設備充電,同時還能保護電池健康。 快充電線的優勢 節省時間 快充電線的主要優勢之一是節省時間。相比普通充電線,快充電線可以在
    的頭像 發表于 08-30 18:05 ?1167次閱讀

    DNP3設備數據 轉 CCLink IE Field Basic項目案例

    網關可將DNP3協議設備數據轉成CCLink協議轉發,實現不同協議設備間數據交換。配置簡單,節省時間和人力成本,支持多種協議和工業應用,設備長期穩定工作。
    的頭像 發表于 08-20 09:34 ?567次閱讀
    DNP3設備數據 轉 CCLink IE Field Basic項目案例

    iec61850設備數據 轉 CCLink IE Field Basic項目案例

    案例說明使用VFBOX網關采集IEC61850設備數據并轉成CCLink協議轉發。網關支持多種協議轉換,實現不同設備間互聯互通。通過簡單配置,節省時間人力成本,設備長期穩定工作。
    的頭像 發表于 08-15 09:23 ?341次閱讀
    iec61850設備數據 轉 CCLink IE Field Basic項目案例

    opc ua設備數據 轉 CCLink IE Field Basic項目案例

    設置網關采集OPCUA設備數據并轉為CCLink協議轉發,實現不同協議設備間數據交換。網關支持多種協議轉換,操作簡單,節省時間人力成本,長期穩定工作。
    的頭像 發表于 08-14 09:44 ?312次閱讀
    opc ua設備數據 轉 CCLink IE Field Basic項目案例

    人工智能在項目管理中的應用:Atlassian Intelligence六大自動化任務方法詳解,讓Jira與Confluence效率翻倍

    人工智能(AI)正在重塑工作方式。它允許您自動化工作流程,以節省時間并確保各種項目之間的一致性。借助AI的力量,您可以輕松簡化那些推動業務發展的繁瑣任務。學習如何使用AI實現自動化,是在保證工作質量
    的頭像 發表于 08-12 11:44 ?1581次閱讀
    人工智能在項目管理中的應用:Atlassian Intelligence六大自動化任務方法詳解,讓Jira與Confluence效率翻倍

    電力IEC104設備數據 轉 CCLink IE Field Basic項目案例

    網關采集IEC104設備數據并轉成CCLink協議轉發。支持多種協議和現場總線,實現設備間互聯互通。配置簡單,不修改設備程序,長期穩定工作,節省時間和人力成本。
    的頭像 發表于 08-07 09:43 ?344次閱讀
    電力IEC104設備數據 轉 CCLink IE Field Basic項目案例

    CJ188設備數據 轉 CCLink IE Field Basic項目案例

    利用VFBOX網關實現CJ188數據采集并轉換成CCLinkIEFieldBasic協議轉發。支持多種協議轉換,節省時間和人力成本。網關穩定工作,無需修改設備程序,簡單配置即可實現設備互聯。
    的頭像 發表于 08-05 09:30 ?898次閱讀
    CJ188設備數據 轉 CCLink IE Field Basic項目案例

    DTL698電表數據 轉 CCLink IE Field Basic協議項目案例

    VFBOX網關通過協議轉換實現DLT698電表數據采集并轉發為CCLink協議,支持多種協議和設備,通過簡單配置實現互聯互通,節省時間人力成本,設備長期穩定工作。
    的頭像 發表于 08-02 09:46 ?270次閱讀
    DTL698電表數據 轉 CCLink IE Field Basic協議項目案例

    DLT645電表數據 轉 CCLink IE Field Basic項目案例

    VFBOX網關作為協議轉換工具,支持多種協議轉換,通過簡單配置實現DLT645電表數據采集并轉發為CCLink協議,適用于不同系統間數據交換,節省時間和人力成本,確保設備長期穩定運行。
    的頭像 發表于 08-01 09:27 ?393次閱讀
    DLT645電表數據 轉 CCLink IE Field Basic項目案例

    S7-200指令庫

    S7-200庫文件是西門子旗下同款編程軟件的可調用數據庫,可安裝也可直接覆蓋進行使用。常用的數據庫,簡便方便調用。在PLC中調試中節省時間
    發表于 07-23 12:29 ?7次下載

    釋放DOE的能量,快速確定最佳工藝設置,節省時間、成本和資源

    摘要:用統計方法優化高耗能行業的能耗和產量
    的頭像 發表于 07-15 10:43 ?385次閱讀

    科技驅動未來,提升AI算力,GPU擴展正當時

    GPU可以大幅縮短AI算法的訓練和推斷時間,從而節省時間和成本
    的頭像 發表于 04-16 18:22 ?994次閱讀
    科技驅動未來,提升AI算力,GPU擴展正當時

    什么是組網?如何遠程組網?

    在當今數字化時代,組網已成為企業提高工作效率、節省時間和成本的關鍵技術。組網是將多臺計算機或其他網絡設備連接起來,形成一互聯互通的網絡系統。本文將概述組網的主要目的、實現方式及其價值,并深入分析
    的頭像 發表于 04-16 14:12 ?1783次閱讀

    請問一下CMake和Make之間的區別有哪些?

    CMake和Make是構建軟件,其工作涉及將源代碼轉換為可執行程序。CMake和Make是旨在實現構建過程自動化的工具,幫助開發者節省時間和精力。
    的頭像 發表于 02-27 11:44 ?1843次閱讀
    主站蜘蛛池模板: 国产亚洲精品99一区二区 | 国产盗摄一区二区 | 午夜办公室在线观看高清电影 | 久久精品黄色 | 欧美GV肉片视频免费观看 | 国产免费内射又粗又爽密桃视频 | 日本在线免费播放 | wwwwwwwww日本电影 | 国产AV精品久久久免费看 | 小学生偷拍妈妈视频遭性教育 | 91嫩草国产在线观看免费 | 亚洲熟妇无码乱子AV电影 | 超级碰碰青草久热国产 | 久久九九少妇免费看A片 | 一久久| 极品少妇粉嫩小泬啪啪AV | 总裁呻吟双腿大开男男H | 光棍天堂在线a | 无码日韩人妻精品久久蜜桃入口 | 国产又色又爽又刺激在线播放 | 欧美成a人片免费看久久 | 青青热久精品国产亚洲AV无码 | 超碰在线视频地址 | 国产AV午夜精品一区二区入口 | 99精品99 | 在野外被男人躁了一夜动图 | 国产精品免费一区二区三区四区 | 蜜臀AV色欲A片无码一区 | 大胸美女被C得嗷嗷叫动态图 | 东京热无码中文字幕av专区 | 丰满的女朋友 在线播放 | 国产精品AV无码免费播放 | 一边吃奶一边啪啪真舒服 | 亚洲成片在线看 | yellow免费| 欧美精品一区二区蜜臀亚洲 | 黑色丝袜美腿美女被躁翻了 | 国产精品高潮呻吟AV久久96 | 日韩人妻精品久久日 | 国产免费人成在线视频有码 | 国产精品高清视频在线 |