1.anaconda
相信大多数 python 的初学者们都曾为环境问题而头疼不已,但你并不孤独,大家都是这么折腾过来的,打算学习 python 来做数据分析的你,是不是在开始时就遇到各种麻烦呢?仅仅是安装数据计算库估计就耗尽了所有的热情。
这里推荐使用 anaconda 来管理你的安装环境和各种工具包。
anaconda是数据分析的python发行版本,集成了几百个专门做数据分析的库,像numpy,pandas,matplotlib,scikit-learn等常用的库都有集成,而且还提供跨平台的安装包,实在是做数据分析不二的选择
2.ipython 、spyder
它是一个增强的python shell,目的是提高编写,测试,调试python代码的速度,
支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数。学习ipython将会让我们以一种更高的效率来使用python。同时它也是利用python进行科学计算和交互可视化的一个最佳的平台。
ipython提供了两个主要的组件:
一个强大的python交互式shell供jupyter notebooks使用的一个jupyter内核(ipython notebook)spyder是anaconda自带的集成开发环境,专门针对数据处理而优化,集成了ipython控制台,可以方便查看数据处理结果及数据可视化
3.numpy
数据科学的核心库,是其他高级数据分析库的基础和依赖,numpy不提供高级数据分析功能,可以更加深刻的理解numpy数组和面向数组的计算。
umpy提供了两种基本的对象:ndarray和ufunc。
ndarray是存储单一数据类型的多维数组,而ufunc是能够对数组进行处理的函数。
numpy的功能:
n维数组,一种快速、高效使用内存的多维数组,他提供矢量化数学运算。
可以不需要使用循环,就能对整个数组内的数据进行标准数学运算。
非常便于传送数据到用低级语言编写(cc++)的外部库,也便于外部库以numpy数组形式返回数据。
4.scipy
scipy是一款方便、易于使用、专门为科学和工程设计的python包,它包括统计、优化、整合、线性代数模块、傅里叶变换、信号和图像处理、常微分方程求解器等。scipy依赖于numpy,并提供许多对用户友好的和有效的数值例程,如数值积分和优化。
5.pandas
pandas是python的一个数据分析包,pandas最初被用作金融数据分析工具而开发出来,因此pandas为时间序列分析提供了很好的支持。
pandas是为了解决数据分析任务而创建的,pandas纳入了大量的库和一些标准的数据模型,提供了高效的操作大型数据集所需要的工具。pandas包含了高级数据结构,以及让数据分析变得快速、简单的工具,提供了大量快速便捷的处理数据的函数和方法。它建立在numpy之上,使得numpy应用变得简单。
pandas在数据探索,数据清洗方面表现的更加出色,可以很容易的处理缺失值,异常值,筛选或合并数据集
pandas是进行数据清洗、整理的最好工具。
6.matplotlib
matplotlib是基于numpy的python的一个可视化模块,提供了方便的数据绘图工具,能方便的做线条图、饼图、柱状图以及其他专业图形。
matplotlib有一套允许定制各种属性的默认设置,可以控制matplotlib中的每一个默认属性:图像大小、每英寸点数、线宽、色彩和样式、子图、坐标轴、网个属性、文字和文字属性。
7.scikit-learn
scikit-learn是基于python机器学习的模块,基于bsd开源许可证,安装需要numpy scopy matplotlib等模块,
scikit-learn为常见的机器学习算法提供了一个简洁而一致的界面,通过一个统一的接口来使用,使得将ml带入生产系统变得简单。 该库结合了高质量的代码和良好的文档,易用性和高性能,是事实上用python进行机器学习的行业标准。scikit-learn的主要功能分为六个部分,分类、回归、聚类、数据降维、模型选择、数据预处理。
scikit-learn自带一些经典的数据集,比如用于分类的iris和digits数据集,还有用于回归分析的boston house prices数据集。该数据集是一种字典结构,数据存储在data成员中,输出标签存储在target成员中。
scikit-learn还有一些库,比如:用于自然语言处理的nltk、用于网站数据抓取的scrappy、用于网络挖掘的pattern、用于深度学习的theano等。,
8.jieba 最好的中文分词工具
jieba 是一个python实现的分词库,对中文有着很强大的分词能力,在文本分析中的文本分类,情感分析等方面表现优异
1 支持三种分词模式:a. 精确模式,试图将句子最精确地切开,适合文本分析;b. 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;c. 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
2 支持自定义词典
关键词提取--基于 tf-idf 算法的关键词抽取词性标注juba是一个python类库,用于处理中文文本,实现文档词汇矩阵、词汇文档矩阵、文档相似、词汇关联分析、自动文档生成等基础功能,python第三方库jieba(结巴)的定位和功能不同,jieba主要用于中文分词、词性标注、关键词提取等,是中文文本处理的最基础部分。juba是在中文文本数据预处理后(中文分词、去掉停用词等)对中文文本(文档或词汇)进行向量化,是情感分析、文本聚类、文本分类、信息检索的基础。因此应该将jieba和juba结合起来使用,即先用jieba进行文本预处理,然后利用juba进行文本向量化,是高级应用的基础。
9.tensorflow
tensorflow是目前最火的深度学习框架,广泛应用于自然语言处理、语音识别、图像处理等多个领域。tensorflow采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。它灵活的架构让你可以在多种平台上展开计算,是由谷歌开源的机器学习系统。tensorflow支持python、c++、java、go等多种编程语言,以及cnn、rnn和gan等深度学习算法。tensorflow除可以在windows、linux、macos等操作系统运行外,还支持android和ios移动平台的运行、以及适用于多个cpu/gpu组成的分布式系统中。
相较于其它的深度学习框架,如:caffe、torch、keras、mxnet、theano等,tensorflow的主要优势有以下几点:高度的灵活性、支持python语言开发、可视化效果好、功能更加强大、运行效率高、强大的社区。
当然tensorflow也有一些缺点:
10.keras
keras是一个高层神经网络库,keras由纯python编写而成并基tensorflow或theano
keras很灵活,且比较容易学。可以把keras看作为tensorflow封装后的一个api,适合快速体验 ,但若想学扎实一点则用 tensorlayer 或者直接使用 tensorflow 和 theano。
python有着像matlab一样强大的数值计算工具包numpy;有着绘图工具包matplotlib;有着科学计算工具包scipy。python能直接处理数据,而pandas几乎可以像sql那样对数据进行控制。matplotlib能够对数据和记过进行可视化,快速理解数据。scikit-learn提供了机器学习算法的支持,tensorflow、keras提供了深度学习框架。
为了帮助小伙伴们更好的学习python,技术学派整理了python的相关学习视频及学习路线图。
领取方式
关注“技术学派”后,评论转发文章,私信回复:python学习