#2018-03-22 10:23:16 March Thursday the 12 week, the 081 day SZ SSMR
http://blog.csdn.net/eastmount/article/details/53144633
数据挖掘课程笔记6 : Numpy、Pandas和Matplotlib包基础知识
一.Python常用扩展包
二.Numpy科学计算包
三.Pandas数据分析包
四.Matplotlib绘图包
一. Python常用扩展包
1.Numpy
数组支持,处理函数
2.Scipy
矩阵相关的数值计算模块
3.Pandas
数据分析和探索工具
4.Scikit-Learn
机器学习库,支持,聚类,分类,回归
5.Matplotlib
数据可视化
二. Numpy科学计算包
1.一维数组处理
#导入包并重命名
import numpy as np
#定义一维数组
a = np.array([2, 0, 1, 5, 8, 3])
print(u'原始数据:', a)
#输出最大、最小值及形状
print(u'最小值:', a.min())
print(u'最大值:', a.max())
print(u'形状', a.shape)
#数据切片
print(u'切片操作:')
print(a[:-2])
print(a[-2:])
print(a[:1])
#排序
print(type(a)) #a的类型
a.sort() #从小到大排序
print(u'排序后:', a)
运行后
原始数据: [2 0 1 5 8 3]
最小值: 0
最大值: 8
形状 (6,)
切片操作:
[2 0 1 5]
[8 3]
[2]
<class 'numpy.ndarray'>
排序后: [0 1 2 3 5 8]
[Finished in 1.1s]
2.二维数组处理
#定义二维数组
import numpy as np
c = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])
print (c)
#获取值
print(u'形状:', c.shape)
print(u'获取值:', c[1][0])
print(u'获取某行:')
print(c[1][:])
print(u'获取某行并切片:')
print(c[0][:-1])
print(c[0][-1:])
#获取具体某列值
print(u'获取第3列:')
print(c[:,np.newaxis, 2])
#print(c[:][2])
#调用sin函数
print(np.sin(np.pi/6))
print(type(np.sin(0.5)))
#范围定义
print(np.arange(0,4))
print(type(np.arange(0,4)))
三. Pandas数据分析包
1.常见用法:读写文件
from pandas import Series, DataFrame
import pandas as pd
#写入excel文件:
df.to_excel('foo.xlsx', sheet_name='Sheet1')
#从excel文件中读取:
pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA'])
#写入csv文件:
df.to_csv('foo.csv')
#从csv文件中读取:
pd.read_csv('foo.csv')
#写入HDF5存储:
df.to_hdf('foo.h5','df')
#从HDF5存储中读取:
pd.read_hdf('foo.h5','df')
读取数据是张良均的《Python数据分析与挖掘实战》的第六章的电力用户数据集,missing_data.xls文件。
#读取数据 header设置Excel无标题头
import pandas as pd
data = pd.read_excel("missing_data.xls", header=None)
print (data)
#计算数据长度
print (u'行数', len(data))
#计算用户A\B\C用电总和
print (data.sum())
#计算用户A\B\C用点量算术平均数
mm = data.sum()
print (mm)
#输出预览前5行数据
print (u'预览前5行数据')
print (data.head())
#输出数据基本统计量
print (u'输出数据基本统计量')
print (data.describe())
2.Series
Series是一维标记数组,可以存储任意数据类型,如整型、字符串、浮点型和Python对象等,轴标一般指索引。
from pandas import Series, DataFrame
#通过传递一个list对象来创建Series,默认创建整型索引;
a = Series([4, 7, -5, 3])
print ('创建Series:\n',a)
#print(a)
#创建一个带有索引来确定每一个数据点的Series ;
b = Series([4, 7, -5, 3], index=['d', 'b', 'a', 'c'])
print (u'创建带有索引的Series:\n',b)
#如果你有一些数据在一个Python字典中,你可以通过传递字典来创建一个Series;
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
c = Series(sdata)
print (u'通过传递字典创建Series:\n',c)
states = ['California', 'Ohio', 'Oregon', 'Texas']
d = Series(sdata, index=states)
print (u'California没有字典为空:\n',d)
3.DataFrame
DataFrame是二维标记数据结构,列可以是不同的数据类型。它是最常用的pandas对象,像Series一样可以接收多种输入:lists、dicts、series和DataFrame等。初始化对象时,除了数据还可以传index和columns这两个参数。
四. Matplotlib画图包
# -*- coding: utf-8 -*-
"""
Created on Mon Nov 14 04:06:01 2016
@author: yxz15
"""
#导入数据集
import pandas as pd
data = pd.read_excel("missing_data.xls", header=None)
mm = data.sum()
print (u'计算用电量总数:')
print (mm)
#绘制图形
import numpy as np
import matplotlib.pyplot as plt
#中文字体显示
plt.rc('font', family='SimHei', size=13)
N = 3
#3个用户 0 1 2
ind = np.arange(N) # the x locations for the groups
print (ind)
#设置宽度
width = 0.35
x = [u'用户A', u'用户B', u'用户C']
#绘图ind是x轴,1,2,3.mm是y轴是三个数字
plt.bar(ind, mm, width, color='r', label='sum num')
plt.xlabel(u"用户名")
plt.ylabel(u"总耗电量")
plt.title(u'电力窃漏电用户自动识别--总耗电量')
plt.legend()
#设置底部名称
plt.xticks(ind+width/2, x, rotation=40) #旋转40度
plt.show()
数据挖掘课程笔记6 : Numpy、Pandas和Matplotlib包基础知识
最新推荐文章于 2024-05-30 18:15:42 发布