最近在学数据分析,这期间,看了不少书,也敲了很多代码,对数据分析有了比较深入的了解。想写点东西,和大家一起分享。
- 编程语言
1.Python
2.R
3.Matlab
数据分析首推R和Python,这点大家已经达成了共识。为什么要把Matlab放这里面的?因为,Matlab是我数学系的一大神器,积分,微分,解微分方程,画图都很方便。Matlab还是很强大的,我觉得,如果它不是商业软件,是有机会和R一争高下的。
再说回R和Python,在学数据分析的时候,总会有人纠结,是用R好呢,还是用Python好呢?语言只是工具,结果才是王道。就算是用C语言,只要能做出结果,那也没有任何问题。我的建议是,如果以前有过编程经验,学过C/C++,Java,Python等编程语言,就用python。如果没有任何编程经验,那用R。 - 学习路线
选择一门语言后。就该考虑学习路线的问题了。我选择的语言是python,所以,以python为例,谈谈我的建议。首先是python入门。python是一门很强大的编程语言,在很多方面都有这广泛的用途,比如:网络爬虫,网站开发,web后端,数据分析,数据挖掘,机器学习等。我们这里只谈数据分析,数据挖掘和机器学习可以作为数据分析的后续内容。
python入门推荐廖雪峰的python教程,里面的内容不用全部看,只学我们需要的即可,具体内容后面会给出。
然后就是python的数据分析包了,numpy,pandas,scipy,matplotlib,sk-learn,如果想往深度学习方向走,还可以学习keras, tensorflow, caffe。
学习完之后就可以自己去做项目了,在项目中感受下这些东西到底怎么用。如果项目不好找,我推荐去打比赛,kaggle, 阿里天池,腾讯,百度都有大数据的竞赛,奖金也挺高。不过,其中用到机器学习和深度学习的东西比较多,后面的几个库还是要认真学习。
下面,分别给出一段python和R的代码,大家可以自己判断一下:
- python
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-2*np.pi, 2*np.pi, 1000)
y1 = np.sin(x)
y2 = np.cos(x)
plt.figure()
plt.plot(x, y1, x, y2)
plt.title('sin&cos')
plt.xlabel('x')
plt.ylabel('y')
plt.xticks([-2*np.pi, -np.pi, 0, np.pi, 2*np.pi], ['$-2\pi$', '$-\pi$', '0', '$\pi$', '$2\pi$'])
结果如图所示:
- R
x <- seq(-2*pi, 2*pi, 0.01)
y1 <- sin(x)
y2 <- cos(x)
plot(x, y1, type='l', col='red', xlab='', ylab='')
lines(x, y2, type='l', col='blue', xlab='', ylab='')
title('sin&cos', xlab='x', ylab='y')
结果如图所示:
本来想把
x
<script type="math/tex" id="MathJax-Element-1">x</script>轴业换成上面那样的,没成功,有人会可以告诉我一下。
自己体会一下代码和图。
不是黑R,我对R的却不感冒。据说R的ggplot2绘图秒杀python,然而我不会~~。有时间再学。