说在前面
即将自学《利用Python进行数据分析》这本书,为了督促自己思考并总结,遂将学习内容连载在此。以便大家参考,和自己回顾。此书前五章主要是介绍了IPython,NumPy,pandas入门,6至10章介绍数据的存储加载,清洗处理等及可视化,数据聚合?时间序列?。。。11章为金融方面的应用,12章为NumPy的高级应用。Python的不足:
Python作为解释型编程语言,大部分代码速度上不可避免的要比编译型语言(JAVA,C++)要慢。
另外一方面,因为GIL的存在,所以Python对高并发,多线程的应用程序不是很友好。(单个Python进程不能执行多线程代码 )
常用库:
NumPy:存储和处理大型矩阵,强大的MatLab系统,算法之间传递数据(由低级语言比如c和Fortran编写的库可直接操作Numpy数组中的数据,无需数据复制)。
pandas:数据处理 (DataFrame)
matplotlib:绘制数据图表
Ipython:编写工具
SciPy:科学计算(积分微分 线性代数balabalabalabala)
IPython
1.逐行输入 逐行输出
2.Tab键自动完成(b._)
3.内省(变量或者函数对象前面或后面加?号显示通用信息 ??还可以显示源代码搜索命名空间 如np.*load*? 列出含load的函数)
4.%run命令 %run+文件名 运行脚本
5.ctrl+c中止(Anaconda Jupter Notebook 有黑色小方块停止按钮)
6.魔术命令 %magic 如%timeit an_example = 42多次执行显示平均花费时间 %time显示所用时间
%logstart记录工作日志
......
7.调试:
%pdb 命令 打开出现异常后自动调用调试器 run -d **.py
b 12 在12行设置断点
c continue运行到断点
s step into
n next 下一步 step over
!a 查看a的值
h help
h b 查看b命令的帮助文档
......
非常好用的两个方法 便于调试:
set_trace()会进入调试器到这停止执行 然后按c继续执行
debug(函数,参数) 在此函数上使用调试器
其他
1、重新加载模块依赖项。
Python有“一次加载”模块系统,当你运行一个脚本后 再修改加载的模块 这个脚本不会使用更新后的模块。需要在import somelib后加上reload(somelib)。递归的重加载需要使用dreload(somelib),它会尝试加载somelib及其所有依赖项,当然实在不行,直接重启IPython。
2、扁平结构要比嵌套结构好
总结
看了两天,前面是对本书目录的一个了解,此书主要是对涉及的几个模块(非常常用)的介绍和初步使用,其次是数据分析从获取到清理到分析到可视化的处理。然后IPython作为交互式的编写工具非常好用,个人推荐新手直接使用Anaconda,包含了很多的插件。之前一直好奇这种的如何去调试,通过这章了解了虽然不是直接通过GUI去直接调试,但是依然是可以通过命令等达到效果的。