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

作者: BrainZou | 来源:发表于2017-12-07 11:22 被阅读208次

    说在前面

    即将自学《利用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.<Tab> _<Tab> )

    3.内省(①变量或者函数对象前面或后面加?号显示通用信息 ②??还可以显示源代码③搜索命名空间 如np.*load*? 列出含load的函数)

    np.*load*?
    
    np.__loader__
    np.load
    np.loads
    np.loadtxt
    np.pkgload
    

    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命令的帮助文档
    ......
    非常好用的两个方法 便于调试:

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

    set_trace()会进入调试器到这停止执行 然后按c继续执行
    debug(函数,参数) 在此函数上使用调试器

    其他

    1、重新加载模块依赖项。

    Python有“一次加载”模块系统,当你运行一个脚本后 再修改加载的模块 这个脚本不会使用更新后的模块。需要在import some_lib后加上reload(some_lib)。递归的重加载需要使用dreload(some_lib),它会尝试加载some_lib及其所有依赖项,当然实在不行,直接重启IPython。

    2、扁平结构要比嵌套结构好

    总结

    看了两天,前面是对本书目录的一个了解,此书主要是对涉及的几个模块(非常常用)的介绍和初步使用,其次是数据分析从获取到清理到分析到可视化的处理。然后IPython作为交互式的编写工具非常好用,个人推荐新手直接使用Anaconda,包含了很多的插件。之前一直好奇这种的如何去调试,通过这章了解了虽然不是直接通过GUI去直接调试,但是依然是可以通过命令等达到效果的。

    个人微信公众号:BrainZou

    相关文章

      网友评论

        本文标题:利用Python进行数据分析(一)

        本文链接:https://www.haomeiwen.com/subject/vokdixtx.html