利用Python进行数据分析(一)

说在前面

即将自学《利用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去直接调试,但是依然是可以通过命令等达到效果的。

本文来自企鹅号 - 全球大搜罗媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯IVWEB团队的专栏

移动端 tryjs 异常捕获

上周处理了一下群活动的 badjs ,第一步是摆脱` Script error .`,捕获异常栈,找到自己是错在哪里? 分享一下移动端 tryjs 异常捕获的步...

3580
来自专栏一个会写诗的程序员的博客

一篇文章读懂 React and redux 前端开发 -DvaJS, a lightweight and elm-style framework.快速上手Dva 概念 #例子和脚手架Dva 图解K

DvaJS: React and redux based, lightweight and elm-style framework.

1893
来自专栏云计算教程系列

如何在Python 3中安装pygame并创建用于开发游戏的模板

Pygame库是专门为了帮助您做出的游戏和其他多媒体应用Python编程语言的一个开放源代码模块。pygame 构建于高度可移植的SDL(Simple Dire...

6742
来自专栏Python web开发

Python那些事——你不知道的python的“独门暗器”!

随着近几年人工智能的流行,从而引发了一个编程语言的兴起,我想说到这,大家应该都明白了这是什么吧,没错它就是大名鼎鼎的——Python

2228
来自专栏ChaMd5安全团队

zctf web100的简单分析

zctf web100的简单分析 From ChaMd5安全团队核心成员 Pcat web100 xctf2017第二站的zctf,web100的链接点开之后...

36415
来自专栏自然语言处理

文本挖掘系列文章3

本文主要针对自然语言处理(NLP)过程中,重要基础部分抽取文本内容的预处理。首先我们要意识到预处理的重要性。在大数据的背景下,越来越多的非结构化半结构化文本。如...

1422
来自专栏python小白到大牛

有轻功:用3行代码让Python数据处理脚本获得4倍提速

Python是一门非常适合处理数据和自动化完成重复性工作的编程语言,我们在用数据训练机器学习模型之前,通常都需要对数据进行预处理,而Python就非常适合完成这...

1673
来自专栏编程

一行 Python 代码实现并行

译者:caspar 译文:https://segmentfault.com/a/1190000000414339 原文:https://medium.com/b...

2679
来自专栏java达人

如何编写一个简易网络爬虫

感谢小臣投稿 本文将简述网络爬虫及其工作流程,结合个人实践,简单介绍如何使用HttpClient、HtmlParser第三方jar工具包,编写一个简易的网络爬虫...

2297
来自专栏java一日一条

一个基于Java的开源URL嗅探器

今天,我们很高兴做一个分享,因为我所在的 Linkedin 公司 开源了我们做的一个ULR探测工具:URL-Detector Java 库。

1412

扫码关注云+社区

领取腾讯云代金券