数据挖掘课程笔记6 : Numpy、Pandas和Matplotlib包基础知识

#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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值