python大数据(一)

Python数据分析与挖掘技术概述

所谓数据分析,即对已知的数据进行分析,然后提取出一些有价值的信息,比如统计平均数,标准差等信息,数据分析的数据量可能不会太大,而数据挖掘,是指对大量的数据进行分析与挖倔,得到一些未知的,有价值的信息等,比如从网站的用户和用户行为中挖掘出用户的潜在需求信息,从而对网站进行改善等。
数据分析与数据挖掘密不可分,数据挖掘是对数据分析的提升。数据挖掘技术可以帮助我们更好的发现事物之间的规律。所以我们可以利用数据挖掘技术可以帮助我们更好的发现事物之间的规律。比如发掘用户潜在需求,实现信息的个性化推送,发现疾病与病状甚至病与药物之间的规律等。

预先善其事必先利其器

我们首先聊聊数据分析的模块有哪些:

  1. numpy 高效处理数据,提供数组支持,很多模块都依赖它,比如pandas,scipy,matplotlib都依赖他,所以这个模块都是基础。所以必须先安装numpy。

  2. pandas 主要用于进行数据的采集与分析

  3. scipy 主要进行数值计算。同时支持矩阵运算,并提供了很多高等数据处理功能,比如积分,微分方程求样等。

  4. matplotlib 作图模块,结合其他数据分析模块,解决可视化问题

  5. statsmodels 这个模块主要用于统计分析

  6. Gensim 这个模块主要用于文本挖掘

  7. sklearn,keras 前者机器学习,后者深度学习。

下面就说说这些模块的基础使用。

numpy模块安装与使用

安装:
下载地址是:http://www.lfd.uci.edu/~gohlke/pythonlibs/
我这里下载的包是1.11.3版本,地址是:http://www.lfd.uci.edu/~gohlke/pythonlibs/f9r7rmd8/numpy-1.11.3+mkl-cp35-cp35m-win_amd64.whl
下载好后,使用pip install "numpy-1.11.3+mkl-cp35-cp35m-win_amd64.whl"
安装的numpy版本一定要是带mkl版本的,这样能够更好支持numpy

numpy简单使用
import numpy

x=numpy.array([11,22,33,4,5,6,7,])  #创建一维数组x2=numpy.array([['asfas','asdfsdf','dfdf',11],['1iojasd','123',989012],["jhyfsdaeku","jhgsda"]])    #创建二维数组,注意是([])x.sort()   #排序,没有返回值的,修改原处的值,这里等于修改了Xx.max()    # 最大值,对二维数组都管用x.min()    # 最小值,对二维数组都管用x1=x[1:3]   # 取区间,和python的列表没有区别
生成随机数

主要使用numpy下的random方法。

#numpy.random.random_integers(最小值,最大值,个数)  获取的是正数data = numpy.random.random_integers(1,20000,30)   #生成整形随机数#正态随机数  numpy.random.normal(均值,偏离值,个数)  偏离值决定了每个数之间的差 ,当偏离值大于开始值的时候,那么会产生负数的。data1 = numpy.random.normal(3.2,29.2,10)    # 生成浮点型且是正负数的随机数

pandas

使用pip install pandas即可

直接上代码:
下面看看pandas输出的结果, 这一行的数字第几列,第一列的数字是行数,定位一个通过第一行,第几列来定位:

print(b)      0     1     2    3    0     1     2     3  4.01  sdaf  dsaf  18hd  NaN2  1463  None  None  NaN

常用方法如下:

import pandas
a=pandas.Series([1,2,3,34,])   # 等于一维数组b=pandas.DataFrame([[1,2,3,4,],["sdaf","dsaf","18hd"],[1463]])   # 二维数组print(b.head())  # 默认取头部前5行,可以看源码得知print(b.head(2))  # 直接传入参数,如我写的那样print(b.tail())   # 默认取尾部前后5行print(b.tail(1))     # 直接传入参数,如我写的那样

下面看看pandas对数据的统计,下面就说说每一行的信息

# print(b.describe())   # 显示统计数据信息
         3      # 3表示这个二维数组总共多少个元素
count  1.0      # 总数
mean   4.0      # 平均数
std    NaN      # 标准数
min    4.0      # 最小数25%    4.0      # 分位数50%    4.0      # 分位数75%    4.0      # 分位数max    4.0      # 最大值

转置功能:把行数转换为列数,把列数转换为行数,如下所示:

print(b.T)   # 转置
   0     1     2   0  1  sdaf  14631  2  dsaf  None2  3  18hd  None3  4   NaN   NaN
通过pandas导入数据

pandas支持多种输入格式,我这里就简单罗列日常生活最常用的几种,对于更多的输入方式可以查看源码后者官网。

CSV文件

csv文件导入后显示输出的话,是按照csv文件默认的行输出的,有多少列就输出多少列,比如我有五列数据,那么它就在prinit输出结果的时候,就显示五列

csv_data = pandas.read_csv('F:\Learnning\CSDN-python大数据\hexun.csv')print(csv_data)
excel表格

依赖于xlrd模块,请安装它。
老样子,原滋原味的输出显示excel本来的结果,只不过在每一行的开头加上了一个行数

excel_data = pandas.read_excel('F:\Learnning\CSDN-python大数据\cxla.xls')print(excel_data)
读取SQL

依赖于PyMySQL,所以需要安装它。pandas把sql作为输入的时候,需要制定两个参数,第一个是sql语句,第二个是sql连接实例。

conn=pymysql.connect(host="127.0.0.1",user="root",passwd="root",db="test")sql="select * from fortest"e=pda.read_sql(sql,conn)
读取HTML

依赖于lxml模块,请安装它。
对于HTTPS的网页,依赖于BeautifulSoup4,html5lib模块。
读取HTML只会读取HTML里的表格,也就是只读取<table>标签包裹的内容.

html_data = pandas.read_html('F:\Learnning\CSDN-python大数据\shitman.html')   # 读取本地html文件。html_from_online = pandas.read_html('https://book.douban.com/')  # 读取互联网的html文件print(html_data)print('html_from_online')

显示的是时候是通过python的列表展示,同时添加了行与列的标识

读取txt文件

输出显示的时候同时添加了行与列的标识

text_data = pandas.read_table('F:\Learnning\CSDN-python大数据\dforsay.txt')print(text_data)