《Python数据分析与挖掘实战》读书笔记
大致扫了一遍,具体的代码基本都没看了,毕竟我还不懂python,并且在手机端的排版,这些代码没法看。
有收获,至少了解到以下几点:
一、 Python的语法挺有意思的
有一些类似于JavaScript这种动态语言的特性在里面,比如多值赋值、比如Lambda表达式等,有机会可以找本python的入门书籍来看看,下面是2017年6月的最新语言排行版,可以看到,传统语言一直在衰退比如c、c#、Java、c++、php、perl等,而一些适应互联网发展的新兴语言一直在增长,比如Python、JavaScript、go语言等。
![](https://images2015.cnblogs.com/blog/12617/201706/12617-20170619133409476-1830403454.png)
二、Python之所以能够成为数据分析与挖掘领域的最佳语言,是有其独特的优势的。
因为他有很多这个领域相关的库可以用,而且很好用,比如Numpy、SciPy、Matploglib、Pandas、ScikitLearn、Keras、Gensim等,下面简单介绍下:
1)Numpy,它给Python提供了真正的数组功能,包括多维数组,以及对数据进行快速处理的函数,Numpy还是更多高级扩展库的依赖库,比如后续的Scipy、Matplotlib、Pandas等,都一样;
2)Scipy,他让Python成了半个MATLAB,Scipy提供了真正的矩阵类型,及其大量基于矩阵运算的对象和函数,他包括的功能包括最优化、线性代数、积分、插值、你和、特殊函数、快速傅里叶变换、信号处理与图像处理、常微分求解方程和其他科学与工程中常用的计算;Scipy依赖于Numpy;
3)Matplotlib,对于Python来说,Matplotlib是最著名的绘图库,主要是二维绘图,当然,也可以支持一些简答的三围绘图;
4)Pandas,他是Python下最强大的数据分析和探索工具,没有之一。他包含的高级的数据结构和精巧的工具,使得在Python中处理数据非常快速和简单,Pandas构建在NumPy之上,他使得以Numpy为中心的应用很容易使用,Pandas的名称来自于面板数据(Panel Data)和Python数据分析(Data Analysis),他最初被作为金融数据分析工具而开发出来,由AQR Capital Management公司于2008年4月开发出来,并与2009年底开源;
他的功能非常强大,支持类似于SQL的数据增删改查,并且带有丰富的数据处理函数,支持时间序列分析,支持灵活处理确实数据等。Pandas其实很复杂, 够单独写一本书,如果对他有兴趣可以看看Pandas主要作者之一 WesMcKinney写的《利用Python进行数据分析》一书。
5)StatModels,Pandas着眼于数据的读取、处理和探索,而StatsModels则更加注重数据的统计建模和分析,他使得Python有了R语言的味道。StatModels支持与Pandas的数据交互,因此,他与Pandas结合,成为了Python下强大的数据挖掘组合;
6)Scikit-Learn,这是一个和机器学习有关的库,他是Python下强大的及其学习工具包,他提供了完善的及其学习工具箱,包括:数据预处理、分类、回归、聚类、预测和模型分析等。他依赖于NumPy、SciPy、Matplotlib等;
7)Keras,他是用来搭建神经网络的,他并非简单的神经网络库,而是一个基于Theano的强大的深度学习库,利用它不仅仅可以搭建普通的神经网络,还可以搭建各种深度学习模型,如自编码器、循环神经网络、递归神经网络、卷积神经网络等。由于它是基于Theano的,速度相当快。
8)Theano,他也是一个Python库,他是由深度学习专家YoshuaBengio带领的实验室开发出来的,用来定义、优化和高效地解决多维数组对应数学表达式的模拟估计问题。他具有高效地实现符号分解、高度优化的速度、和稳定性等特点,最重要的是还实现了GPU加速,是的密集型数据的处理速度是CPU的十倍;
9)Gensim,topic modelling of humans,他主要用来处理语言方面的任务,如文本相似度计算、LDA、Word2Vec等,这些领域的任务往往需要比较多的背景知识,通常的情况是:研究这方面的读者已经不需要我再多说什么,而不研究这方面的读者,在这里也说不清楚。
三、以前学习的一些高等数学的知识要复习下
要做好数据分析和挖掘,一定要掌握相关的数据工具,不需要自己去实现相关的算法,关键是要懂得每种算法的原理,知道每种算法客户解决什么类型的问题,在遇到相关问题有思路。
需要复习的有高等数学、线性代数、概率论与数理统计、离散数学。