《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中转到相应的盘符,不然就把库安装位置全都放到环境变量里!
网友评论