02 jupyter notebook使用,Markdown語法,Spyder

魔法命令續(xù)集:
(7)%history 歷史執(zhí)行命令
(8)%%writefile 向文件中寫入內(nèi)容
- 使用說明:如果文件不存在會自動創(chuàng)建,如果文件存在則會覆蓋文件,當(dāng)然如果指定-a選項,則會進(jìn)行內(nèi)容的追加,而不是覆蓋。append 附加
- 僅支持單元格模式
- 使用方法:%% writefile -a name.py

- 注意這個追加寫不會自動另起一行寫,需要自己輸入換行符,也就是如圖所示:

(9)%prun 函數(shù)顆粒度
- 使用說明:通過python的執(zhí)行時的代碼分析器,來分析程序間,可以發(fā)現(xiàn)程序中最耗時的部分,進(jìn)而可以針對性的進(jìn)行優(yōu)化。

(10)%Iprun 比prun更加細(xì)致
- 使用說明:Iprun不是IPython內(nèi)置的,需要安裝line_profiler模塊,然后需要通過
( %load_ext line_profiler載入 才能使用ext就是擴(kuò)展的意思)
- 使用語法:
%lprun -f 函數(shù)名1 -f 函數(shù)名2 .... <啟動語句>
- for循環(huán)的底層是通過iter()實現(xiàn)的,所以for語句的執(zhí)行次數(shù)要比for語句內(nèi)部的執(zhí)行次數(shù)多一次

- 具體各部分代表的意思:


總結(jié):通過prun可以初步判斷出是哪個函數(shù)花費的時間較多,然后再結(jié)合lprun判斷是函數(shù)中那一步所花費的時間較多,這兩個都是計算時間復(fù)雜度。
(11)%memit %mprun 計算空間復(fù)雜度
這兩個不是Ipython所內(nèi)建的魔法命令,我們需要安裝memory_profiler模塊后,通過 %load_ext memory_profiler 載入 再使用
- %memit
- 支持行模式和單元格模式
- 與timeit的使用相似

2.%mprun
- 可以更加細(xì)致的計算單個語句的空間復(fù)雜度
- 僅支持物理模塊下的函數(shù),單個文件如a.py就是一個物理模塊,and 不支持交互式環(huán)境下的函數(shù),例如在jupyter上寫的就是交互式的,因為jupyter就相當(dāng)于是Ipython的網(wǎng)頁版,而Ipython就是交互式解釋器 ,看下圖的報錯

- 使用語法格式:
%mprun -f 函數(shù)名1 -f 函數(shù)名2 啟動語句

注意:Python的定義中,對于模塊只導(dǎo)入一次存在內(nèi)存中,而不會多次導(dǎo)入,即使之后這個模塊文件更新了也就是物理模塊發(fā)生了更新也不會再次導(dǎo)入,內(nèi)存中存在的依舊是更新前的舊的模塊文件。那么,如果需要重新導(dǎo)入,怎么辦???
解決辦法:可以導(dǎo)入importlib模塊,如下圖代碼:

執(zhí)行系統(tǒng)命令且不退出交互式環(huán)境:只需要使用 !前綴即可。例如,安裝一個模塊,不用離開當(dāng)前的環(huán)境,使用 !pip install xxx。
========================================
jupyter notebook 特點:
- 相較于pycharm而言,jupyter只需要導(dǎo)入一次數(shù)據(jù)集,接下來的代碼就可以隨意使用,但是pycharm的話需要每次執(zhí)行都重新導(dǎo)入一次。
- 基于Ipython的解釋器,就是一個web版本的Ipython
- 啟動方法:使用控制臺來啟動 可以自己決定啟動的位置也就是啟動后的jupyter的根目錄的位置

- 啟動命令:敲入 jupyter notebook
- 單元格顯示行號操作:

單元格的兩種模式:編輯模式和命令模式
- 命令模式快捷鍵:

2.編輯模式快捷鍵:
- Tab 代碼補(bǔ)充
- shift + Tab 查看幫助文檔不污染開發(fā)環(huán)境 或者連著按兩下tab
3.通用模式下運行代碼的快捷鍵三種類型:
- Ctrl + Enter 只是運行單元格并處于命令模式
- Shift + Enter 運行單元格結(jié)束后到下一行單元格
- Alt + Enter 運行結(jié)束后在下方增加一行單元格
支持Markdown和Latex數(shù)學(xué)公式 :
1.標(biāo)題:支持六級標(biāo)題
--------------------------------------------------------------
2.無序列表:使用*、- 或者+ 后跟隨一個空格來表示,此外,也有子無序列表,前綴使用一個tab鍵,然后使用*、- 或者+ 后跟隨一個空格
-----------------------------------------------------------------------
3.有序列表:使用數(shù)字跟隨一個點再跟隨一個空格 來表示,此外,有序列表也有子有序列,前綴使用一個tab鍵,然后再數(shù)字跟隨一個點和空格鍵
--------------------------------------------------------------
4.換行:使用兩個或者以上空白符
5.粗體:**xx**就是兩顆星包含的形式
6.斜體:*xx*就是一顆星包含的形式
7.粗斜體:那就是三個星號包含
8.刪除線:使用兩個波浪線~~的包含
9.代碼高亮顯示:使用一對反引號包含
10.引用:使用 > 符號,可以嵌套也就是使用多個 >
11.分割線:使用三個星號或者三個下劃線或者三個減號
-----------------------------------------------------------------------
12.鏈接與顯示圖片:

13.LaTex在線編輯網(wǎng)址:http://latex.codecogs.com/eqneditor/editor.php
- 一對$包含起來表示的是行模式,一對$$包含起來表示的是段落模式也就是前面有縮進(jìn)的
========================================
更新:圖片鏈接的表示:
其實本質(zhì)就是超鏈接的模板與顯示圖片的模板進(jìn)行了嵌套。

========================================更新2022/2/13:
Q: 如何在指定的目錄下打開jupyter notebook
A: 在該目錄下,按住shift鍵然后點鼠標(biāo)右鍵,選擇打開power shell窗口,然后輸入jupyter notebook即可。
