本文为《利用Python进行数据分析》的部分读书笔记 IPython项目旨在开发一个更具交互性的Python解释器,它使用了一种执行-探索工作流来替代其它语言中典型的编辑-编译-运行工作流。它还提供针对操作系统命令行与文件系统的易用接口。Jupyter项目旨在设计一个适用于更多语言的交互式计算工具。IPython web notebook则成为Jupyter notebook。IPython系统目前可以作为一个内核用于在Jupyter中使用Python。 jupyter notebook可以作为本地计算环境,也可以部署在服务器端。在服务器中开启Notebook服务,即可在本地的浏览器端进行访问。 在配置文件中可以 运行下列指令: 上面的代码会将默认配置文件写入主目录下的.jupyter/jupyter_notebook_config.py。我win10电脑上的路径为D:SoftwareCadenceCadenceSPB_Data.jupyterjupyter_notebook_config.py,打开相应文件后即可进行配置。也可以将其重命名为不同的文件,之后在启动jupyter notebook时添加–config参数使用该配置: Jupyter Notebook 文件默认目录的查看以及更改:https://blog.csdn.net/nico2333/article/details/84186063 IPython中的特殊命令被称为魔术命令,前缀符为%。大多数魔术命令都可以使用?查看额外的命令行参数。 IPython会话存储对输入和输出命令的引用,并将特定变量中的Python对象输出。前两个输出分别存储在_(一个下划线)和__(两个下划线)变量中 输入变量存储在_iX变量中,X为输入行号。对于每个输入变量,都有一个对应的输出变量_X 在处理非常大的数据集时,即使使用del删除变量,IPython的输入和输出历史记录也会导致引用的所有对象不会被垃圾回收。这种情况下,可以使用%reset和%xdel来避免内存问题 IPython集成并增强了内置的Python pdb调试器,加强的地方包括tab键补全、语法高亮以及异常回溯中每一行的上下文。 Python调试器命令: 调试器命令优先于变量名称,在这种情况下,变量前面加上!来检查变量内容 代码分析更多关注于时间开销的位置。使用Python分析工具cProfile模块。cProfile执行程序或任意代码块,同时记录每个函数花费多少时间。目录
IPython与Jupyter notebook简介
总而言之,IPython就是一个加强版的Python解释器,Jupyter notebook则是一种基于web的代码笔记本。IPython基础
使用IPython命令行
$ ipython Python 3.7.4 (default, Aug 9 2019, 18:34:13) [MSC v.1915 64 bit (AMD64)] Type 'copyright', 'credits' or 'license' for more information IPython 7.8.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: 运行Jupyter notebook
$ jupyter notebook



配置文件
jupyter notebook --generate-config jupyter notebook --config=D:SoftwareCadenceCadenceSPB_Data.jupyterjupyter_notebook_config.py Jupyter Notebook 文件默认目录的查看以及更改
Tab补全



内省






魔术命令
%run hello_world.py %run -i hello_world.py #让待运行的脚本使用交互式IPython命名空间中已有的变量
%load hello_world.py

wall time(壁钟时间) 测量的时间不是一个非常精确的测量%timeit np.dot(a,a)
其输出可以赋给一个变量

matplotlib集成

更多IPython系统相关内容
输入和输出变量


由于输入变量是字符串,可以使用exec函数再次执行它们exec(_i19) 删除变量
与操作系统交互

#Linux ip_info = !ifconfig wlan0 | grep "inet"
foo = 'test*' !ls $foo
%alias ll ls -l %alias test_alias (ls; cd ..; ls)
%bookmark py4da /home/richard/pydata-book !cd py4da %bookmark -l #列出所有书签
软件开发工具
debug
命令
动作
h(elp)
展示命令列表
help command
显示command命令的文档
c(ontinue)
恢复程序执行
q(uit)
退出调试器
b(reak) number
在当前文件的number位置设置断点
b(reak) path/file.py:number
在指定文件的number位置设置断点
s(tep)
单步进入函数调用
n(ext)
执行当前行,并进入到当前层级的下一行
u§/d(own)
在函数调用堆栈中上下移动
a(rgs)
显示当前函数的参数
debug statement
在新的(递归)调试器中调用语句statement
l(ist) statement
显示当前堆栈的当前位置和上下文
w(here)
在当前位置打印带有上下文的完整堆栈回溯


%run -d -b2 xxx.py会启动一个已经设置了断点的调试器(在第2行设置断点)





from IPython.core.debugger import Pdb import sys def set_trace(): Pdb().set_trace(sys._getframe().f_back) def debug(f, *args, **kwargs): return Pdb().runcall(f, *args, **kwargs)


代码分析
%run -p有相同效果
-s用于指定一个排序顺序

-l 7表示取前7行


conda install line_profiler
%load_ext line_profiler

