Python数据分析与挖掘实战

快速了解数据分析与挖掘技术

     1.什么是数据分析与挖掘技术(概念)

         所谓数据分析,即对已知的数据进行分析,然后提取出一些有价值的信息,比如统计出平均数、标准差等信息,数据分析的数据量有时可能不会太大,而数据挖掘,是指对大量的数据进行分析与挖掘,得到一些未知的,有价值的信息等,比如从网站的用户或用户行为数据中挖掘出用户的潜在需求信息,从而对网站进行改善。

         数据分析与数据挖掘密不可分,数据挖掘是数据分析的提升。

     2.数据分析与挖掘技术能做什么事情(概念 )

         数据挖掘技术可以帮助我们更好的发现事务之间的规律,所以,我们可以利用数据挖掘技术实现数据规律的探索、比如发现窃电用户、发掘用户潜在需求、实现信息的个性化推送、发现疾病与症状设置疾病与药物之间的规律...等

     3.数据挖掘的过程主要有(怎么实现)

  1. 定义目标
  2. 获取数据(常用手段有通过爬虫采集或者下载一些统计网站发布的数据,并没有严格的数据把控)
  3. 数据探索(对我们数据的初步的研究,发现数据的特征,就知道我们接下来怎么处理)
  4. 数据预处理(数据清洗【去掉脏数据】、数据集成【集中】、数据变换【规范化】、数据规约【精简】)
  5. 挖掘建模(分类算法、聚类算法、关联算法、预测算法)
  6. 模型评价与发布

2.数据分析与挖掘相关模块简介与安装

     1.相关模块简介

  1. numpy可以高效处理数据、提供数组支持、很多模块都依赖他,比如pandas、scipy、matplotlib都依赖他,所以这个模块是基础。
  2. pandas在后续用的最多的一个模块,主要用于进行数据探索和数据分析
  3. matplotlib 作图模块,解决可视化问题
  4. scipy 主要进行数值计算,同时支持矩阵运算,并提供了恩多高等数据处理功能,比如积分、傅里叶变换、微分方程求解等。
  5. statsmodels这个模块主要用于统计分析
  6. Gensim这模块主要用于文本挖掘
  7. skearn、keras前者机器学习,后者深度学习

     2.相关模块的安装与技巧(建议这样安装)

        1.numpy、mkl(下载安装numpy+mkl) 提取码:n5ac  (可以自行选择安装版本numpy+mkl

        2.pandas (网络安装)

        3.matplotlib (网络安装)

        4.scipy(下载安装,网盘下载建议先下载在安装)提取码:i383   网站下载

        5.statsmodels  (网络安装)

        6.Gensim(网络安装)

     3.相关模块的基本使用

     1. numpy(数组的运算效率要比列表的运算效率要高,底层运算是不一样的)

                         1. #创建一维数组          

                             >>> import numpy
                             >>> x = numpy.array(['a','v','b'])  #  创建数组的格式
                             >>> x
                             array(['a', 'v', 'b'], dtype='<U1')    # 返回对应的元素,和对应的类型,取值按照下标取,如:x[1]  返回  v

                             #创建二维数组             

                             >>> x = numpy.array([[4,5,6,7],[8,9,7,6],[12,23,34,8]])

                            >>> x

                           array([[ 4,  5,  6,  7],
                                      [ 8,  9,  7,  6],
                                      [12, 23, 34,  8]])   #返回数据

                      2.排序  sort()     按照上面例子如:x.sort()

                     3.取最大值和最小值     

                       按照上面例子 :取最大值 :x.max()

                                                    取最小值: x.min()

                    4.切片

                       按照上面例子:x[起始下标:最终下标+1]  

  2.pandas使用          

import pandas as pda
'''
Series   index索引未指定按照0开始    行列pandas里面的一维数组
DataFrame  表格行和列格式  二维数组
'''
a = pda.Series([8.9, 2, 1]) #索引未指定
b = pda.Series([8,9, 2, 1],index=["one", "two", "three", "four"])#指定索引,index必须和数据相对应

#第一种方法
data = pda.DataFrame([[54, 1, 21, 24], [7, 58, 88, 99], [47, 85, 98, 72], [69, 58, 47, 25]]) #默认行列以0开始
data = pda.DataFrame([[54, 1, 21, 24], [7, 58, 88, 99], [47, 85, 98, 72], [69, 58, 47, 25]],columns=['one','two','three','four']) #修改列名,必须跟数据长度一样
#第二种方法,按照字典创建  (one,two,three)为列表名
data_dict =pda.DataFrame({
    'one':4,         一列一行          
    'two':[6,2,3],   value值是列表为多行,
    'three':list(str(982))
})   #其他行不满足时,自动补全,如:

》》》   one  two three
    0    4    6     9
    1    4    2     8
    2    4    3     2

b.head()        #头部数据,默认前五行
b.head(行数)    #自定义取头部数据几行
b.tail()       #尾部数据,默认后五行
b.tail(行数)   #自定义取尾部数据几行
data.sort_values([0],ascending=False) #排序,参数【0】为列名,ascending=False  降序

展示统计情况:
data.describe() #把数据的统计信息给打印出来
返回:
          one        two      three       four
count   4.000000   4.000000   4.000000   4.000000  # 元素个数的信息
mean   44.250000  50.500000  63.500000  55.000000  # 代表的平均数
std    26.474831  35.369478  35.911929  36.905284  # 展示标准差的意思
min     7.000000   1.000000  21.000000  24.000000  # 这一列最小值
25%    37.000000  43.750000  40.500000  24.750000  # 代表每一列,分位数
50%    50.500000  58.000000  67.500000  48.500000  #
75%    57.750000  64.750000  90.500000  78.750000  #
max    69.000000  85.000000  98.000000  99.000000  # 这一列最大值

#数据转置(将行变成列,将列变成行)
data.T  #转置行遍列

3.matplotlib基础 折线图/散点图 以及绘制子图    

# 折线图、散点图  一般会有 plot模块绘制
import matplotlib.pylab as pyl
import numpy as npy

# 维数x轴和y轴必须一致,否者报错
x = [1, 2, 3, 4, 8]  # x轴
y = [5, 7, 2, 1, 5]  # y轴
pyl.plot(x, y)  # plot(x轴,y轴,展现形式)一般会有两个或者3个参数,第一个x轴数据,第二是y轴参数,第三是对应展示的形式(如:或者展示为散点图,设置展示颜色 )
pyl.show()  # 展示折线图,默认折线图
pyl.plot(x, y, 'o')  # 字母o是代表散点图
pyl.show()  # 折线图如果不注释,将会和下面的散点图重叠展示
pyl.plot(x, y, 'c')  # 默认折线图,换成青色
pyl.plot(x, y, 'oc')  # 修改成散点图,换成青色,是否是折线图的参数和颜色的参数叠加在一起
pyl.show()
# 颜色代表
'''
c-cyan--青色
r-red--红色
m-magente-品红
g-green-绿色
b-blue-蓝色
y-yellow-huangs
k-black-黑色
w-white-白色
'''
# 线条样式 常用线条
'''
-    直线
--   虚线
-.-. 形式(展示就是-.形式)
:     细小虚线
'''
# pyl.plot(x, y, '--')  # 折线图修改线条
# 点的样式
'''
s   方形
h   六角形
H   六角形(跟h有一点区别)
*   星形
x   x形
d   菱形
D   菱形(与d有点区别)
p   五角星
'''
pyl.plot(x, y, "*")  # 加上点的样式,默认是散点图
pyl.show()
# 设置标题以及x轴与y轴名称
pyl.plot(x, y)
x2 = [1, 3, 6, 8, 10, 12, 19]
y2 = [1, 6, 9, 10, 19, 23, 35]
pyl.plot(x2, y2)
pyl.title('show')  # 标题
pyl.xlabel('ages')  # x轴名称
pyl.ylabel('temp')  # y轴名称
pyl.xlim(0, 20)  # 设置x轴的范围
pyl.ylim(1, 40)  # 设置y轴的范围
pyl.show()  # 使用多图绘制,在show之前,多次使用plot

随机数的生成
# 前提导入
import numpy as npy

# data = npy.random.random_integers(1, 20, 10)  # 生成整型数值,第一参数,最小值,第二参数:最大数,第三个参数:随机数的个数
# 怎么生成正太分布的随机数,生成正太分布使用normal模块
data=npy.random.normal(5.0,2.0,10)  # 均数,西格玛(越小越陡峭,越大越平缓),个数
print(data)

# 随机数网址 http://www.mamicode.com/info-detail-507676.html
# 直方图  一般会有hist模块  绘制
# 直方图一般统计某一段数据的次数
#正太分布随机
data = npy.random.normal(10.0, 1.0, 10000)
pyl.hist(data)
pyl.show()
#整型随机
data1=npy.random.random_integers(1,25,1000)
pyl.hist(data1)
pyl.show()

# 直方图的宽度以及上下限
sty = npy.arange(2, 19, 2) #x轴开始和结束值,第三参数是数据范围条件
pyl.hist(data1,sty,histtype='stepfilled')#第二个参数不叫,显示默认的,histtype='stepfilled'取消直方图轮廓
pyl.show()

# 绘制子图
pyl.subplot(2, 2, 4)  # 参数1代表行,参数2代表列,参数3代表当前区域
pyl.show()
# 绘制两行一列

pyl.subplot(2, 2, 1)  # 共两行第一行分两列第一列
x1 = [1, 2, 3, 4, 5]
y1 = [5, 3, 5, 23, 5]
pyl.plot(x1, y1)

pyl.subplot(2, 2, 2)  # 共两行第一行分两列第2列
x2 = [5, 2, 3, 8, 6]
y2 = [7, 9, 12, 12, 3]
pyl.plot(x2, y2)

pyl.subplot(2, 1, 2)  # 共两行第二行分一列第2行
x3=[5,6,7,10,19,20,29]
y3=[6,2,4,21,5,1,5]
pyl.plot(x3,y3)
pyl.show()

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值