02 jupyter notebook使用,Markdown语法,Spyder

魔法命令续集:
(7)%history 历史执行命令
(8)%%writefile 向文件中写入内容
- 使用说明:如果文件不存在会自动创建,如果文件存在则会覆盖文件,当然如果指定-a选项,则会进行内容的追加,而不是覆盖。append 附加
- 仅支持单元格模式
- 使用方法:%% writefile -a name.py

- 注意这个追加写不会自动另起一行写,需要自己输入换行符,也就是如图所示:

(9)%prun 函数颗粒度
- 使用说明:通过python的执行时的代码分析器,来分析程序间,可以发现程序中最耗时的部分,进而可以针对性的进行优化。

(10)%Iprun 比prun更加细致
- 使用说明:Iprun不是IPython内置的,需要安装line_profiler模块,然后需要通过
( %load_ext line_profiler载入 才能使用ext就是扩展的意思)
- 使用语法:
%lprun -f 函数名1 -f 函数名2 .... <启动语句>
- for循环的底层是通过iter()实现的,所以for语句的执行次数要比for语句内部的执行次数多一次

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


总结:通过prun可以初步判断出是哪个函数花费的时间较多,然后再结合lprun判断是函数中那一步所花费的时间较多,这两个都是计算时间复杂度。
(11)%memit %mprun 计算空间复杂度
这两个不是Ipython所内建的魔法命令,我们需要安装memory_profiler模块后,通过 %load_ext memory_profiler 载入 再使用
- %memit
- 支持行模式和单元格模式
- 与timeit的使用相似

2.%mprun
- 可以更加细致的计算单个语句的空间复杂度
- 仅支持物理模块下的函数,单个文件如a.py就是一个物理模块,and 不支持交互式环境下的函数,例如在jupyter上写的就是交互式的,因为jupyter就相当于是Ipython的网页版,而Ipython就是交互式解释器 ,看下图的报错

- 使用语法格式:
%mprun -f 函数名1 -f 函数名2 启动语句

注意:Python的定义中,对于模块只导入一次存在内存中,而不会多次导入,即使之后这个模块文件更新了也就是物理模块发生了更新也不会再次导入,内存中存在的依旧是更新前的旧的模块文件。那么,如果需要重新导入,怎么办???
解决办法:可以导入importlib模块,如下图代码:

执行系统命令且不退出交互式环境:只需要使用 !前缀即可。例如,安装一个模块,不用离开当前的环境,使用 !pip install xxx。
========================================
jupyter notebook 特点:
- 相较于pycharm而言,jupyter只需要导入一次数据集,接下来的代码就可以随意使用,但是pycharm的话需要每次执行都重新导入一次。
- 基于Ipython的解释器,就是一个web版本的Ipython
- 启动方法:使用控制台来启动 可以自己决定启动的位置也就是启动后的jupyter的根目录的位置

- 启动命令:敲入 jupyter notebook
- 单元格显示行号操作:

单元格的两种模式:编辑模式和命令模式
- 命令模式快捷键:

2.编辑模式快捷键:
- Tab 代码补充
- shift + Tab 查看帮助文档不污染开发环境 或者连着按两下tab
3.通用模式下运行代码的快捷键三种类型:
- Ctrl + Enter 只是运行单元格并处于命令模式
- Shift + Enter 运行单元格结束后到下一行单元格
- Alt + Enter 运行结束后在下方增加一行单元格
支持Markdown和Latex数学公式 :
1.标题:支持六级标题
--------------------------------------------------------------
2.无序列表:使用*、- 或者+ 后跟随一个空格来表示,此外,也有子无序列表,前缀使用一个tab键,然后使用*、- 或者+ 后跟随一个空格
-----------------------------------------------------------------------
3.有序列表:使用数字跟随一个点再跟随一个空格 来表示,此外,有序列表也有子有序列,前缀使用一个tab键,然后再数字跟随一个点和空格键
--------------------------------------------------------------
4.换行:使用两个或者以上空白符
5.粗体:**xx**就是两颗星包含的形式
6.斜体:*xx*就是一颗星包含的形式
7.粗斜体:那就是三个星号包含
8.删除线:使用两个波浪线~~的包含
9.代码高亮显示:使用一对反引号包含
10.引用:使用 > 符号,可以嵌套也就是使用多个 >
11.分割线:使用三个星号或者三个下划线或者三个减号
-----------------------------------------------------------------------
12.链接与显示图片:

13.LaTex在线编辑网址:http://latex.codecogs.com/eqneditor/editor.php
- 一对$包含起来表示的是行模式,一对$$包含起来表示的是段落模式也就是前面有缩进的
========================================
更新:图片链接的表示:
其实本质就是超链接的模板与显示图片的模板进行了嵌套。

========================================更新2022/2/13:
Q: 如何在指定的目录下打开jupyter notebook
A: 在该目录下,按住shift键然后点鼠标右键,选择打开power shell窗口,然后输入jupyter notebook即可。
