Python 数据挖掘及机器学习笔记之基础模块
基础模块:
- numpy:数值计算扩展
- pandas:基于numpy,用于数据探索与分析
- scipy:用于高等数据处理
- matplotlib:数据可视化工具
- statsmodels:用于统计分析
- Gensim:用于文本挖掘
- sklearn(scikit-learn):机器学习
- keras:深度学习
因为需要的模块比较多,故使用Anaconda来管理Python环境
👇👇👇👇👇👇👇👇👇点击展开👇👇👇👇👇👇👇👇👇
[cr_toggle title="Anaconda安装步骤" state="closed"]
清华镜像源: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]
文章评论