Python数据可视化编程实战
WinPython-32bit-3.5.2.2Qt5.exe
1.1 设置matplotlib参数配置模板以方便各项目共享
D:\Bin\WinPython-32bit-3.5.2.2Qt5\python-3.5.2\Lib\site-packages\matplotlib\mpl-data
三种方式:
当前工作目录
用户级 Documents and Setting
安装级配置文件
D:\Bin\WinPython-32bit-3.5.2.2Qt5\python-3.5.2\Lib\site-packages\matplotlib\mpl-data
第二章: 了解数据导入和导出各种格式的数据,除此之外,还包括清理数据的方式比如归一化、缺失数据的添加、实时数据检查等类。
如果想加载大数据文件,通常用NumPy模块。
import csv
import sys
filename = 'E:\\python\\Visualization\\2-1\\10qcell.csv'
data = []
try:
with open('E:\\python\\Visualization\\2-1\\21.csv') as f:
reader = csv.reader(f, delimiter=',')
data = [row for row in reader]
except csv.Error as e:
sys.exit(-1)
for datarow in data:
print( datarow)
2.2 从excel文件导入数据
import xlrd
import os
import sys
path = 'E:\\python\\Visualization\\2-3\\'
file = path + '2-2.xlsx'
wb = xlrd.open_workbook(filename=file)
ws = wb.sheet_by_name('Sheet1') #指定工作表
dataset = []
for r in range(ws.nrows):
col = []
for c in range(ws.ncols):
col.append(ws.cell(r,c).value) #某行某列数值
dataset.append(col)
print(dataset)
2.3 从定宽数据文件导入
import struct
import string
path = 'E:\\python\\Visualization\\'
file = path + '2-4\\test.txt'
mask = bytes('3c4c7c',encoding='utf-8')
with open(file, 'rb') as f:
for line in f:
fields = struct.unpack_from(mask,line)
print([field.strip() for field in fields])
2.4 从制表符分割的文件中导入
和从csv读取类似,分隔符不一样而已。
2.5 导出数据到csv、excel示例,未运行
def write_csv(data)
f = StringIO.StringIO()
writer = csv.writer(f)
for row in data:
writer.writerow(row)
return f.getvalue()
2.6 从数据库中导入数据
连接数据库
查询数据
遍历查询到的行
2.7 清理异常值MAD:median absolute deviation 中位数绝对偏差
box plox: 箱线图
坐标系不同,显示效果的欺骗性:
from pylab import *
x = 1e6*rand(1000)
y = rand(1000)
figure()
subplot(2,1,1)
scatter(x,y)
xlim(1e-6,1e6)
subplot(2,1,2)
scatter(x,y)
xscale('log')
xlim(1e-6,1e6)
show()
2.8 读取大块数据文件
python擅长处理文件及类文件对象的读写。它不会一次性地加载所有内容,而是聪明地按照需要来加载。
他山之石:
并行方法MapReduce,低成本获得更大的处理能力和内存空间;
多进程处理,如thread、multiprocessing、threading;
如果重复的处理大文件,建议建立自己的数据管道,这样每次需要数据以特定的形式输出时,不必再找到数据源进行手动处理。
2.9 生成可控的随机数据集合模拟各种分布的数据。
2.10 数据平滑处理方法:卷积滤波等
他山之石:
许多方法可以对外部信号源接收到的信号进行平滑处理,这取决于工作的领域和信号的特性。许多算法都是专门用于某一特定的信号,可能没有一个通用的解决方法普遍适用于所有的情况。
一个重要的问题是:什么时候不应该对信号进行平滑处理?
对于真实信号来说,平滑处理的数据对于真实的信号来说可能是错误的。
资源链接
标签
发布日期
2019-02-23
擦亮日期
2019-02-23