python大数据挖掘系列之基础知识入门(numpy、panda
数据分析的模块有哪些:
- numpy 高效处理数据,提供数组支持,很多模块都依赖它,比如pandas,scipy,matplotlib都依赖他,所以这个模块都是基础。所以必须先安装numpy。
- pandas 主要用于进行数据的采集与分析
- scipy 主要进行数值计算。同时支持矩阵运算,并提供了很多高等数据处理功能,比如积分,微分方程求样等。
- matplotlib 作图模块,结合其他数据分析模块,解决可视化问题
- statsmodels 这个模块主要用于统计分析
- Gensim 这个模块主要用于文本挖掘
- 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使用
'''
1.numpy 高效处理数据,提供数组支持,很多模块都依赖它,比如pandas,scipy,matplotlib都依赖他,所以这个模块都是基础。所以必须先安装numpy。
2.pandas 主要用于进行数据的采集与分析
3.scipy 主要进行数值计算。同时支持矩阵运算,并提供了很多高等数据处理功能,比如积分,微分方程求样等。
4.matplotlib 作图模块,结合其他数据分析模块,解决可视化问题
5.statsmodels 这个模块主要用于统计分析
6.Gensim 这个模块主要用于文本挖掘
7.sklearn,keras 前者机器学习,后者深度学习。
'''
import numpy
x=numpy.array([11,22,33,4,5,6,7,]) #创建一维数组 array数组、阵列
print(x)
'''
[11 22 33 4 5 6 7]
'''
x2=numpy.array([['asfas','asdfsdf','dfdf',11],['1iojasd','123',989012],["jhyfsdaeku","jhgsda"]]) #创建二维数组,注意是([])
print(x2)
'''
[list(['asfas', 'asdfsdf', 'dfdf', 11]) list(['1iojasd', '123', 989012]) list(['jhyfsdaeku', 'jhgsda'])]
'''
x.sort() #排序,没有返回值的,修改原处的值,这里等于修改了X
print(x)
x.max() # 最大值,对二维数组都管用
print(x.max() )
x.min() # 最小值,对二维数组都管用
print(x.min())
x1=x[1:3] # 取区间,和python的列表没有区别
print(x1)
'''
[ 4 5 6 7 11 22 33]
33
4
[5 6]
'''
data = numpy.random.random_integers(10,20,10) #生成整形随机数
# numpy.random.random_integers(最小值,最大值,个数) 获取的是整数
print(data)
'''
[19 10 20 10 10 20 19 17 13 11]
'''
data1 = numpy.random.normal(10,20,4) # 生成浮点型且是正负数的随机数
#正态随机数 numpy.random.normal(均值,偏离值,个数) 偏离值决定了每个数之间的差 ,当偏离值大于开始值的时候,那么会产生负数的。
print(data1)
'''
[23.56606939 30.49792155 28.06999632 19.60559134]
'''
pandas 使用
import pandas
a=pandas.Series([1,2,33,44]) # 等于一维数组
print(a)
b = pandas.DataFrame([[1,2,33,4],["sdaf","dsaf","18hd"],[1463],['QWQ']]) #二维数组
print(b)
'''
0 1 2 3
0 1 2 33 4.0
1 sdaf dsaf 18hd NaN
2 1463 None None NaN
3 QWQ None None NaN
'''
print(b.head()) # 默认取头部前5行,可以看源码得知
'''
0 1 2 3
0 1 2 33 4.0
1 sdaf dsaf 18hd NaN
2 1463 None None NaN
3 QWQ None None NaN
'''
print(b.head(2)) # 直接传入参数,如我写的那样
'''
0 1 2 3
0 1 2 33 4.0
1 sdaf dsaf 18hd NaN
'''
print(b.tail()) # 默认取尾部前后5行
'''
0 1 2 3
0 1 2 33 4.0
1 sdaf dsaf 18hd NaN
2 1463 None None NaN
3 QWQ None None NaN
'''
print(b.tail(1)) # 直接传入参数,如我写的那样
'''
0 1 2 3
3 QWQ None None NaN
'''
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 3
0 1 sdaf 1463 QWQ
1 2 dsaf None None
2 33 18hd None None
3 4 NaN 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>标签包裹的内容.
显示的是时候是通过python的列表展示,同时添加了行与列的标识
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')
读取txt文件
输出显示的时候同时添加了行与列的标识
text_data = pandas.read_table('F:\Learnning\CSDN-python大数据\dforsay.txt')
print(text_data)