matplotlib z支持函数式绘图和面向对象式绘图。
- 函数式绘图,参考了 matlib 里面的绘图函数语法,简单容易上手。
- 面向对象式绘图,更懂 matplotlib 底层架构,有更多的功能。
matplotlib 使用控制台绘图
In [2]: import matplotlib.pyplot as plt
In [3]: plt.plot([1,2,3],[3,2,1])
Out[3]: [<matplotlib.lines.Line2D at 0x7f14c456d790>]
In [4]: plt.show()
numpy 简介
- numpy 是Python 的开源的数值计算扩展
- 可用来存储和处理大型矩阵,比 python 自身数据结构要高效
- Numpy 将 Python 变成一种免费的强大的 Matlab 系统
创建 ndarray 的三种方式
-
从 python 的基础数据对象转化
In [7]: import numpy as np In [8]: a = [1,2,3,4] In [9]: x1 = np.array(a) In [10]: x1 Out[10]: array([1, 2, 3, 4]) In [11]: type(x1) Out[11]: numpy.ndarray
-
通过 numpy 内置的函数生成
In [14]: x2 = np.arange(11) In [15]: x2 Out[15]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
-
从硬盘读取数据
一般包括从数据库或者文件读取。
演示一个从文件中读取数据的 demo
文件如图所示 :
我们想要读取这份数据的 Open,Close 以及 Volume 三列的数据。
import numpy as np
x = np.loadtxt('000001.csv', delimiter=',', skiprows=1,
usecols=(1, 4, 6), unpack=False)
print x
delimiter 是使用的分隔符, skiprows=1 意思为跳过第一行标题,usecols=(1, 4, 6) 意思是取第 1,4,6 列的值。
打印结果,可以看到三列数据放在一个数据里面,我们可以设置 unpack = True ,将每一列的数据单独展示。
import numpy as np
open, close, volume = np.loadtxt('000001.csv', delimiter=',', skiprows=1,
usecols=(1, 4, 6), unpack=True)
print open, close, volume
ndarray 的基本操作
基本的运算
import numpy as np
c = np.arange(11)
# c
print c
# c + c
print c+c
# c*2
print c*2
# c-c
print c-c
# c/2
print c/2
# c/2.0
print c/2.0
取值的截取
# coding:utf-8
import numpy as np
c = np.arange(11)
# 取最后一个数
print c[-1]
# 截取
print c[0:5]
print c[5:]
print c[::2]
print c[::-1]
常用函数
# coding:utf-8
import numpy as np
# 生成 10 个 1-100 之间的随机数
c = np.random.randint(1, 100, 10)
print c
# np.func(x)
# x.func()
# 取数组最小值
print np.min(c)
print c.min()
# 取数组最大值
print np.max(c)
print c.max()
# 取均值
print np.mean(c)
print c.mean()
# 取中位数
print np.median(c)
# print c.median()
# 取方差
print np.var(c)
print c.var()
# 排序
d = np.sort(c)
print c
print d
print "-"*10
print c
c.sort()
print c
一般来说,调用函数的两种用法的效果是一样的。
但是要注意两种调用函数进行排序,对数组自身的影响。