美文网首页程序员
《Python数据分析第一章》

《Python数据分析第一章》

作者: 带刺的小花_ea97 | 来源:发表于2018-12-21 01:45 被阅读61次

    《Python数据分析》

    第一章Python程序库入门

    首先看一幅描绘数据分析软件的脑图。

    数据分析软件的脑图

    各种各样的库,数据分析,数据处理和数据可视化。

    1.1本书用到的软件
    1.2通过源代码或setuptools安装NumPy、Scipy、matpllotlib和IPthon
    import numpy as np
    np.__version__
    
    import scipy as sc
    sc.__version__
    
    import matplotlib as mt
    mt.__version__
    
    import IPython as IR
    IR.__version__
    
    1.4Numpy数组

    Numpy是基于向量化的计算。

    1.5一个简单的应用

    分别用纯Python和NumPy表示:向量a存放的是整数0到n-1的2次幂,向量b存放的是整数0到n的三次幂。
    纯Python表示:

    def pythonsum(n):
        a = list(range(n))
        b = list(range(n))
        c = []
         
        for i in range(len(a)):
            a[i] = i ** 2
            b[i] = i ** 3
            c.append(a[i] + b[i])
    
        print(c)
        print(b)
        print(a)
    
    pythonsum(1000)
    

    注意一点range()函数输出方式:

    a = range(5)
    print(a)
    b = list(range(5))
    print(b)
    

    这两种方法输出的结果是不同的。
    NumPy表示:

    def numpysum(n):
       a = numpy.arange(n) ** 2
       b = numpy.arange(n) ** 3
       c = a + b
       print(a, b, c)
       
    numpysum(1000)
    

    注意,numpysum()无需使用for语句。此外,使用NumPy的arange()函数,替我们创建了一个含有整数0到n的NumPy数组。我们可以通过比较numpysum()和Pythonsum()的时间,以微秒作为单位,看看答案如何?

    import sys
    from datetime import datetime
    import numpy as np
    
    def pythonsum(n):
        a = list(range(n))
        b = list(range(n))
        c = []
         
        for i in range(len(a)):
            a[i] = i ** 2
            b[i] = i ** 3
            c.append(a[i] + b[i])
    
        return(c)
        
    def numpysum(n):
        a = numpy.arange(n) ** 2
        b = numpy.arange(n) ** 3
        c = a + b
        return(c)
        
    size = int(input())
    
    start = datetime.now()
    c = pythonsum(size)
    delta = datetime.now() - start
    print('The last 2 elements of the sum', c[-2:])
    print('PythonSum elappsed time in microseconds', delta.microseconds)
    
    start = datetime.now()
    c = numpysum(size)
    delta = datetime.now() - start
    print('The last 2 elements of the sum', c[-2:])
    print('NumPySum elappsed time in microseconds', delta.microseconds)
    

    运行,输入40000,可以看到结果

    The last 2 elements of the sum [63992000319996, 63996800040000]
    PythonSum elappsed time in microseconds 63004
    The last 2 elements of the sum [1282576892 1787329600]
    NumPySum elappsed time in microseconds 2000
    

    显而易见,NumPy的速度比等价的常规Python代码要快很多。还有一件事情是肯定的,无论是否使用NumPy,结果是相同的,但是区别是一个有逗号,一个没有逗号。这是因为我们处理的不是Python的列表,而是一个NumPy数组。

    因为是改编书中的代码,所以顺带说一下Sys.argv[ ]函数:是一个列表,里边的项为用户输入的参数,关键就是要明白这参数是从程序外部输入的,而非代码本身的什么地方,要想看到它的效果就应该将程序保存了,从外部来运行程序并给出参数。

    1.6将IPython用作shell

    我的理解IPython就相当于一个友好的Python运行界面!

    IPython大纲

    详细信息可以参见下方网址:
    https://www.cnblogs.com/zzhzhao/p/5295476.html

    查看当前日期 内省 查看历史命令

    这被称为魔力函数!

    1.7学习手册页
    1.8IPython notebook

    我正在使用的是Jupyter notebook!

    1.9从何处寻去帮助和参考资料

    官方网站、论坛、Stack Overflow等

    1.10小结

    本章安装了程序库,通过一个向量加法程序,体验了NumPy带来的由于性能,此外还探讨了有关的文档和在线资源。

    1.11另

    因为重装系统,所以运行相应库时,要在cmd中转到相应的盘符,不然就把库安装位置全都放到环境变量里!

    相关文章

      网友评论

        本文标题:《Python数据分析第一章》

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