美文网首页程序员
《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