成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

12個(gè)常用的IPython魔法命令

開(kāi)發(fā) 后端
IPython中有一些特有的魔法命令,如果能合理的利用這些魔法命令,會(huì)省去很多不必要的操作,為編程帶來(lái)很大程度的便利,下面就來(lái)安利十二個(gè)常用的魔法命令。

[[333390]]

不能以偏概全哈,就我個(gè)人而言,在日常編程中一般都會(huì)用到兩個(gè)編譯器——Pycharm和Jupyter,在刷算法、寫(xiě)爬蟲(chóng)時(shí)會(huì)用到前者,因?yàn)槲伊?xí)慣用Pycharm里的Debug功能調(diào)試,很容易找出代碼中的Bug。

而進(jìn)行數(shù)據(jù)分析、機(jī)器學(xué)習(xí)時(shí)就會(huì)用到后者,因?yàn)镴upyter編譯器利用的IPython是一種交互式計(jì)算和開(kāi)發(fā)環(huán)境,對(duì)數(shù)據(jù)的可視化十分友好,這類(lèi)單元格的形式每一步都有運(yùn)行結(jié)果,便于整理自己思路,并且很大程度上節(jié)約了運(yùn)行時(shí)間,在調(diào)試的時(shí)候只需要運(yùn)行出錯(cuò)的部分代碼,而不是全部。

IPython中有一些特有的魔法命令,如果能合理的利用這些魔法命令,會(huì)省去很多不必要的操作,為編程帶來(lái)很大程度的便利,下面就來(lái)安利十二個(gè)常用的魔法命令。

基礎(chǔ)常識(shí)

  •  ?和?? ->例:%matplotlib?、%matplotlib??

后綴為?可以獲取一個(gè)對(duì)象的相關(guān)信息,比如描述一個(gè)方法該怎么用;后綴為??可以獲取該對(duì)象更加詳細(xì)的信息,比如源碼。這個(gè)對(duì)象可以是IPython中自帶的、也可以是導(dǎo)入的、也可以是自己定義的。

  •  %和%% ->例:%time、%%time

前綴為%被稱(chēng)作行魔法命令(line magics),只能在單個(gè)輸入行上運(yùn)行;前綴為%%被稱(chēng)作單元格魔法命令(cell magics),可以在多個(gè)輸入行上運(yùn)行。

1.%Ismagic和%magic

如果你還不了解IPython的魔法命令,那這兩個(gè)魔法命令一定是最重要的,記牢這兩個(gè)命令之后慢慢了解剩下的。%lsmagic的作用就是列出所有存在的行魔法命令和單元格魔法命令,部分截圖如下:

%magic的作用就是給出所有魔法命令的詳細(xì)介紹,比如介紹、樣例等等,比較考驗(yàn)英語(yǔ)功底,耐下心慢慢了解。

2.%pdb

輸入這個(gè)命令并且運(yùn)行之后,如果后面的代碼出現(xiàn)了異常,這個(gè)指令就會(huì)主動(dòng)進(jìn)入調(diào)試器,幾十行幾百行代碼難免會(huì)有幾個(gè)或一堆Bug。可能比較笨的方法就是找斷點(diǎn)然后print,最后還要把print刪掉,而%pdb調(diào)試找到Bug后直接退出就好,相對(duì)前者更方便些。

比如兩個(gè)數(shù)相加,不小心把一個(gè)整數(shù)定義成字符型,在調(diào)用函數(shù)計(jì)算時(shí)會(huì)發(fā)生報(bào)錯(cuò),然后就可以進(jìn)入調(diào)試器進(jìn)行調(diào)試,切記最后要通過(guò)exit()退出,不能直接終止單元格運(yùn)行。

3.%debug

%debug的作用與%pdb幾乎是一樣的,不同之處就是%pdb在遇到異常自動(dòng)進(jìn)入調(diào)試器,而%debug是人遇到報(bào)錯(cuò)主動(dòng)輸入指令進(jìn)入調(diào)試器,仍然是上面那個(gè)例子,調(diào)試界面如下:

主動(dòng)和被動(dòng)兩種調(diào)試方式大家可以靠自己喜好選擇,我個(gè)人比較喜歡%debug。

4.%who和%whos

代碼一多變量可能就會(huì)變多,變量一多可能就會(huì)混淆,或者在刪除單元格的時(shí)候不小心把變量定義的單元格也刪掉了,%who和%whos這兩條命令就起到大作用了。

%who給出的信息只有全局變量的名稱(chēng),而%whos給出的信息更加詳細(xì),包括變量名稱(chēng)、類(lèi)型、和數(shù)據(jù)。

5.%time和%timeit

這兩條命令都是用來(lái)輸出代碼的執(zhí)行時(shí)間,比如可以用來(lái)粗略的比較兩種算法在相同的問(wèn)題上執(zhí)行時(shí)間哪一個(gè)更少,不同點(diǎn)在于%time只執(zhí)行一次就輸出執(zhí)行時(shí)間,而%timeit是執(zhí)行多次然后計(jì)算平均時(shí)間再輸出。

比如這里%timeit命令輸出中有7 runs代表共執(zhí)行7次,這兩個(gè)命令都為行命令,%%time和%%timeit為單元格命令,區(qū)別同上。

6.%store

如果你在一個(gè)文件中花了很長(zhǎng)的時(shí)間清理了一些數(shù)據(jù),比如對(duì)原始數(shù)據(jù)缺失值填充呀、降維呀、轉(zhuǎn)換呀等等,然后在另一個(gè)文件中需要用到同樣的數(shù)據(jù),笨一點(diǎn)方法就是將數(shù)據(jù)保存然后在新文件中調(diào)用,但這種操作一條%store命令就能完成,我們先在一個(gè)文件中利用%store保存一個(gè)變量。

然后在另一個(gè)文件中調(diào)用這個(gè)變量:

可以看到直接調(diào)用是會(huì)報(bào)錯(cuò)的,但利用了%store -r命令之后就可以成功調(diào)用被%store保存的變量,所以%store用來(lái)保存,%store -r用來(lái)讀取。

7.%xdel和%reset

這條命令的作用就是刪除變量,并且刪除其在IPython中的對(duì)象上的一切引用。平時(shí)在數(shù)據(jù)清洗時(shí),從原始數(shù)據(jù)到清洗后的數(shù)據(jù)中間要經(jīng)過(guò)很多步驟,我們不可能全程用一個(gè)變量名稱(chēng),所以中間步驟很容易為數(shù)據(jù)起一些類(lèi)似的名稱(chēng),而利用%xdel就可以將無(wú)用的單個(gè)變量名稱(chēng)刪掉,防止混淆。

%reset的作用就是刪除所有變量名。

8.%cls

在數(shù)據(jù)清洗時(shí)候,通常都是做一步然后輸出一次數(shù)據(jù)集,觀察一下變化,我們都知道展示數(shù)據(jù)集是很占網(wǎng)頁(yè)的,久而久之,這個(gè)notebook就特別長(zhǎng),再想查看文件前面的內(nèi)容不僅需要滾動(dòng)很長(zhǎng)時(shí)間滑輪,而且數(shù)據(jù)間很容易混淆,所以每當(dāng)輸出一次數(shù)據(jù)集后可以利用%cls命令清除一次,使notebook看起來(lái)更整潔。

可以看到正常的話data之后會(huì)打印數(shù)據(jù)集,但利用%cls之后數(shù)據(jù)集的輸出被清除了。

9.%%writefile

如果我們想寫(xiě)一個(gè)函數(shù),例如去除中文符號(hào)的函數(shù),這樣的函數(shù)在很多情景下都可以利用,所以我們可以將這個(gè)函數(shù)寫(xiě)入一個(gè)單獨(dú)文件,想用的時(shí)候直接調(diào)用,這個(gè)操作可以利用%%writefile命令進(jìn)行寫(xiě)入。

10.%run

%run命令的作用就是運(yùn)行腳本文件,不僅可以直接使用腳本文件中的代碼,腳本文件也可以使用IPython環(huán)境中的變量,仍用上面的例子,可以用%run命令直接運(yùn)行。

11.%psource

如果你在notebook定義了一個(gè)函數(shù),但隔了比較久需要用到這個(gè)函數(shù),但是可能忘記了這個(gè)函數(shù)需要傳入哪些參數(shù)、或者傳入?yún)?shù)的類(lèi)型應(yīng)該是什么,這種情況下就不得不往前翻尋找這個(gè)函數(shù)的代碼,但利用%psource可以偷懶,這個(gè)命令就是輸出源代碼。

前面提及的??也有相同的作用,但是輸出的形式?jīng)]有%psource直觀,還混有其它的信息在里面。

12.%hist

%hist的作用就是打印所有命令行輸入的歷史記錄,方便查看之前輸入的代碼信息。

這個(gè)命令允許設(shè)置查詢(xún)的區(qū)間,也就是命令行輸入對(duì)應(yīng)的序號(hào)。

這些魔法命令有一部分能被常用的代碼語(yǔ)句代替,但是卻沒(méi)有魔法命令簡(jiǎn)單明了,只是個(gè)人習(xí)慣的問(wèn)題,如果可能盡量改掉自己的思維定式,用更加便捷的代碼處理問(wèn)題。 

 

責(zé)任編輯:龐桂玉 來(lái)源: Python中文社區(qū)
相關(guān)推薦

2024-06-19 10:08:42

Python編程while循環(huán)

2022-07-28 08:33:59

JupyterPython

2020-04-25 19:00:15

Linux終端命令

2022-10-25 16:36:03

機(jī)器學(xué)習(xí)深度學(xué)習(xí)數(shù)據(jù)集

2024-03-18 15:04:02

物聯(lián)網(wǎng)通信協(xié)議IOT

2018-01-15 13:20:26

Linux命令IP

2020-05-22 11:20:56

Linux命令文件

2021-09-27 18:07:06

物聯(lián)網(wǎng)協(xié)議物聯(lián)網(wǎng)IOT

2010-07-28 15:42:44

Flex

2020-04-14 15:10:38

Linux終端命令

2017-02-27 14:50:36

Linux命令數(shù)據(jù)

2022-11-06 17:48:39

Linux系統(tǒng)命令

2013-09-10 10:34:49

PowerShell

2013-11-13 13:55:16

Linux命令grep

2015-07-21 16:06:49

Linux進(jìn)程管理命令

2016-11-09 14:53:33

virsh命令虛擬機(jī)

2021-03-16 10:12:24

python內(nèi)置函數(shù)

2023-11-02 10:24:30

KubectlKubernetes

2011-02-16 09:26:49

2018-04-18 14:55:26

網(wǎng)絡(luò)監(jiān)控命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 日韩成人在线免费观看 | 不卡视频一区 | 第四色狠狠 | 国产一区三区在线 | 国产农村妇女精品一区 | av天天爽| 久久久久久久av | 欧美精品一二三 | 欧美日韩高清 | 欧美在线观看一区二区 | 亚洲国产一区二区三区在线观看 | 一区二区三区视频在线 | 国产成人自拍av | 精品视频在线观看 | 最新中文字幕 | 亚洲激情一区二区 | 亚洲成人黄色 | 久久99久久久久 | 日韩二三区 | 中文字幕av第一页 | 四虎海外 | 国产精品一区二区免费看 | 国产农村一级片 | 在线观看中文字幕亚洲 | 国产成人精品免费 | 91传媒在线观看 | 日本免费一区二区三区四区 | 一区二区在线观看av | 欧美日韩精品在线免费观看 | 美女天堂| 久久一区二区免费视频 | 一级亚洲| 亚洲成人网在线观看 | 成人老司机 | 美日韩免费视频 | 成人精品一区二区三区 | 91精品麻豆日日躁夜夜躁 | 欧美精品久久久久 | 亚洲美女一区二区三区 | 国内精品久久久久久 | 91免费福利在线 |