Python 数据挖掘及机器学习笔记之基础模块

2018年05月10日 6688点热度 0人点赞 0条评论

基础模块:

  • numpy:数值计算扩展
  • pandas:基于numpy,用于数据探索与分析
  • scipy:用于高等数据处理
  • matplotlib:数据可视化工具
  • statsmodels:用于统计分析
  • Gensim:用于文本挖掘
  • sklearn(scikit-learn):机器学习
  • keras:深度学习

 

因为需要的模块比较多,故使用Anaconda来管理Python环境

👇👇👇👇👇👇👇👇👇点击展开👇👇👇👇👇👇👇👇👇

[cr_toggle title="Anaconda安装步骤" state="closed"]

官网:https://www.anaconda.com

清华镜像源:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

官网下载较慢,所以使用清华大学开源软件镜像站下载并安装

Anaconda:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

Miniconda:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/

顾名思义,Mini版本可以理解为精简版,下载哪个版本无所谓因为包都可以后期安装

安装方法和其他安装软件一样,基本是无脑下一步。

安装完毕之后,别忘了配置国内conda镜像源:https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/

但需要注意以下几点:

1.管理员运行安装

2.安装问题1

上图默认为"Just Me",意为仅当前用户安装。这里按需选择,推荐选择第二项"All Users"全部用户安装。

 

3.安装问题2

上图第一个选项意为,将Anaconda添加到系统环境变量,貌似Anaconda4.x版本后就不推荐添加到环境变量了

如果添加就可以直接使用CMD或Powershell直接调用conda命令

如果不添加则只能在"Anaconda Prompt"(Anaconda自带的命令窗口)中调用对应命令

第二个选项意为,将Anaconda自带的Python3.6注册为系统默认Python(就是将Anaconda带的python加入环境变量了)

 

如果你之前系统有安装Python,并且不想删除那这两项请不要勾选

如果你没有安装过Python,为了防止冲突请仅勾选第二项(推荐)

如果你没有安装过Python,并且就想在CMD下执行conda命令那请全部勾选

 

4.Anaconda与Java环境变量冲突会导致无法创建开始菜单等

先记录并删除Java环境变量重启后安装Anaconda后再添加回来

 

安装的时候可能会出现各种各样的问题,别慌。先在往上查找是否有解决方法,不行就重头再来。

[/cr_toggle]

 

安装模块(创建虚拟环境):

conda create -n default pandas scipy matplotlib statsmodels Gensim scikit-learn keras python=3.6

conda create 创建虚拟环境,-n default 虚拟环境命名 名字随便, 后面接需要安装的模块 以及指定python版本如不指定版本默认为最新,这样conda会安装好这些模块所需的全部依赖包期间你只需要输入一下Y(确认)等待完成即可。

 

activate default
deactivte default

activate 环境名 即可进入虚拟环境;deactivte  即可退出虚拟环境

 

进入 创建的 default 环境后键入

conda list

可以查看当前环境下已经安装的全部包。

[cr_toggle title="实例截图" state="open"]

[/cr_toggle]

 

 

模块的使用:

  • numpy
>>> import numpy
>>> array1 = numpy.array([8,4,9,3,2,0,33,77])
>>> array2 = numpy.array([['virace','virgo','ace'],['a','b','c'],['d','e','f']])
>>> array1.sort()
>>> array1
array([ 0, 2, 3, 4, 8, 9, 33, 77])

array1为一维数组, array为二维数组。Numpy模块支持多为数组。array.sort()为数组排序(仅支持一维数组)

 

>>> array3 = numpy.array([[12,66,23,45,64],[97,43,57,74,23],[32,56,79,56,77]])
>>> array3.max()
97
>>> array3.min()
12
>>> array4 = numpy.array([['12','66','23','45','64'],['97','43','57','74','23'],['32','56','79','56','77']])
>>> array4.max()
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 File "D:\Office\Anaconda3\envs\default\lib\site-packages\numpy\core\_methods.py", line 26, in _amax
 return umr_maximum(a, axis, None, out, keepdims)
TypeError: cannot perform reduce with flexible type

Numpy支持多维数字类型数组取最大最小值,array.max();array.min()

 

>>> array1[1:3]
array([2, 3])
>>> array1[:3]
array([0, 2, 3])
>>> array2[:3]
array([['virace', 'virgo', 'ace'],
 ['a', 'b', 'c'],
 ['d', 'e', 'f']], dtype='<U6')
>>> array2[:2]
array([['virace', 'virgo', 'ace'],
 ['a', 'b', 'c']], dtype='<U6')
>>> array2[:2][1:3]
array([['a', 'b', 'c']], dtype='<U6')

Numpy支持多维数组切片,大体和Python字典类型切片一样。多维数组切片只需要一层一层切即可。

 

  • pandas
In [1]: import pandas as pd

In [2]: a = pd.Series([6,7.5,8,3,1])

In [3]: a
Out[3]:
0    6.0
1    7.5
2    8.0
3    3.0
4    1.0
dtype: float64

这里换了iPython解释器,在虚拟环境中键入ipython即可进入(代码无区别),Series(序列)暂时将他理解为一维数组(因为还没有深入使用)。

 

In [4]: b = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]])

In [5]: b
Out[5]:
   0  1  2
0  1  2  3
1  4  5  6
2  7  8  9

In [6]: b.head(1)
Out[6]:
   0  1  2
0  1  2  3

In [7]: b.tail(1)
Out[7]:
   0  1  2
2  7  8  9

In [8]: b.describe()
Out[8]:
         0    1    2
count  3.0  3.0  3.0
mean   4.0  5.0  6.0
std    3.0  3.0  3.0
min    1.0  2.0  3.0
25%    2.5  3.5  4.5
50%    4.0  5.0  6.0
75%    5.5  6.5  7.5
max    7.0  8.0  9.0

In [9]: b.T
Out[9]:
   0  1  2
0  1  4  7
1  2  5  8
2  3  6  9

DataFrame11(数据框),可以理解为Excel表格,或数据库表。

DataFrame.head(n),取前n行,默认为5;DataFrame.tail(n),取后n行,默认为5

DataFrame.describe(),简单统计信息(count:总数;mean:均值;std:标准差;min:最小值;25%:四分之一分位数;50%:中位数;75%:四分之三分位数;max:最大值)

DataFrame.T,转置,横纵坐标相反

 

pd.read_csv(filename):从CSV文件导入数据
pd.read_table(filename):从限定分隔符的文本文件导入数据
pd.read_excel(filename):从Excel文件导入数据
pd.read_sql(query, connection_object):从SQL表/库导入数据
pd.read_json(json_string):从JSON格式的字符串导入数据
pd.read_html(url):解析URL、字符串或者HTML文件,抽取其中的tables表格
pd.read_clipboard():从你的粘贴板获取内容,并传给read_table()
pd.DataFrame(dict):从字典对象导入数据,Key是列名,Value是数据

一些基础的数据导入方法。

 

pd.read_feather
pd.read_hdf
pd.read_msgpack
pd.read_sas
pd.read_sql_table
pd.read_fwf
pd.read_parquet
pd.read_stata
pd.read_gbq
pd.read_pickle
pd.read_sql_query

上面这些是其他一些导入的方法,用到的时候会讲~

 

[cr_alert style="red"]

【处女座之最,未经许可,禁止转载】

[/cr_alert]

 

文章评论