python做数据分析怎么样?

Python012

python做数据分析怎么样?,第1张

     我使用python这门语言也有三年了,被其简洁、易读、强大的库所折服,我已经深深爱上了python。其pythonic语言特性,对人极其友好,可以说,一个完全不懂编程语言的人,看懂python语言也不是难事。

     在数据分析和交互、探索性计算以及数据可视化等方面,相对于R、MATLAB、SAS、Stata等工具,Python都有其优势。近年来,由于Python库的不断发展(如pandas),使其在数据挖掘领域崭露头角。结合其在通用编程方面的强大实力,我们完全可以只使用Python这一种语言去构建以数据为中心的应用程序。

     由于python是一种解释性语言,大部分编译型语言都要比python代码运行速度快,有些同学就因此鄙视python。但是小编认为,python是一门高级语言,其生产效率更高,程序员的时间通常比CPU的时间值钱,因此为了权衡利弊,考虑用python是值得的。

Python强大的计算能力依赖于其丰富而强大的库:

Numpy

Numerical Python的简称,是Python科学计算的基础包。其功能

1. 快速高效的多维数组对象ndarray。

2. 用于对数组执行元素级计算以及直接对数组执行数学运算的函数。

3. 线性代数运算、傅里叶变换,以及随机数生成。

4. 用于将C、C++、Fortran代码集成到Python的工具。

除了为Python提供快速的数组处理能力,NumPy在数据分析方面还有另外一个主要作用,即作为在算法之间传递数据的容器。对于数值型数据,NumPy数组在存储和处理数据时要比内置的Python数据结构高效得多。此外,由低级语言(比如C和Fortran)编写的库可以直接操作NumPy数组中的数据,无需进行任何数据复制工作。

SciPy

是一组专门解决科学计算中各种标准问题域的包的集合,主要包括下面这些包:

1. scipy.integrate:数值积分例程和微分方程求解器。

2. scipy.linalg:扩展了由numpy.linalg提供的线性代数例程和矩阵分解功能。

3. scipy.optimize:函数优化器(最小化器)以及根查找算法。

4. scipy.signal:信号处理工具。

5. scipy.sparse:稀疏矩阵和稀疏线性系统求解器。

6. scipy.special:SPECFUN(这是一个实现了许多常用数学函数(如伽玛函数)的Fortran库)的包装器。

7. scipy.stats:标准连续和离散概率分布(如密度函数、采样器、连续分布函数等)、各种统计检验方法,以及更好的描述统计法。

8. scipy.weave:利用内联C++代码加速数组计算的工具。

注:NumPy跟SciPy的有机结合完全可以替代MATLAB的计算功能(包括其插件工具箱)。

SymPy

是python的数学符号计算库,用它可以进行数学表达式的符号推导和演算。

pandas

提供了使我们能够快速便捷地处理结构化数据的大量数据结构和函数。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

pandas兼具NumPy高性能的数组计算功能以及电子表格和关系型数据库(如SQL)灵活的数据处理功能。它提供了复杂精细的索引功能,以便更为便捷地完成重塑、切片和切块、聚合以及选取数据子集等操作。

对于使用R语言进行统计计算的用户,肯定不会对DataFrame这个名字感到陌生,因为它源自于R的data.frame对象。但是这两个对象并不相同。R的data.frame对象所提供的功能只是DataFrame对象所提供的功能的一个子集。也就是说pandas的DataFrame功能比R的data.frame功能更强大。

matplotlib

是最流行的用于绘制数据图表的Python库。它最初由John D. Hunter(JDH)创建,目前由一个庞大的开发人员团队维护。它非常适合创建出版物上用的图表。它跟IPython(马上就会讲到)结合得很好,因而提供了一种非常好用的交互式数据绘图环境。绘制的图表也是交互式的,你可以利用绘图窗口中的工具栏放大图表中的某个区域或对整个图表进行平移浏览。

TVTK

是python数据三维可视化库,是一套功能十分强大的三维数据可视化库,它提供了Python风格的API,并支持Trait属性(由于Python是动态编程语言,其变量没有类型,这种灵活性有助于快速开发,但是也有缺点。而Trait库可以为对象的属性添加检校功能,从而提高程序的可读性,降低出错率。) 和NumPy数组。此库非常庞大,因此开发公司提供了一个查询文档,用户可以通过下面语句运行它:

>>>from enthought.tvtk.toolsimport tvtk_doc

>>>tvtk_doc.main()

Scikit-Learn

是基于python的机器学习库,建立在NumPy、SciPy和matplotlib基础上,操作简单、高效的数据挖掘和数据分析。其文档、实例都比较齐全。

小编建议:初学者使用python(x, y),其是一个免费的科学和工程开发包,提供数学计算、数据分析和可视化展示。非常方便!

其官网:www.pythonxy.com(由于某种原因,国内上不去,需要翻墙)

下载地址:ftp://ftp.ntua.gr/pub/devel/pythonxy/(小编到网上搜到的一个地址,亲测可以用)

下图展示了python(x, y) 强大功能。

与数据分析相关的 Python 库

NumPy

NumPy 是 Python 科学计算的基础包,它提供:

快速高效的多维数组对象 ndarray;

直接对数组执行数学运算及对数组执行元素级计算的函数;

线性代数运算、随机数生成

将 C、C++、Fortran 代码集成到 Python 的工具等。

它专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA 用其处理一些本来使用 C++,Fortran 或Matlab 等所做的任务。

Pandas

Pandas 主要提供快速便捷地处理结构化数据的大量数据结构和函数。

Matplotlib

Matplotlib 是最流行的用于绘制数据图表的 Python 库。

IPython

IPython 是 Python 科学计算标准工具集的组成部分,是一个增强的 Python Shell,目的是提高编写、测试、调试 Python 代码的速度。主要用于交互式数据处理和利用matplotlib 对数据进行可视化处理。

SciPy

SciPy 是一组专门解决科学计算中各种标准问题域的包的集合。主要包括以下包:

scipy.integrate: 数值积分例程和微分方程求解器;

scipy.linalg: 扩展了由 numpy.linalg 提供的线性代数例程和矩阵分解功能;

scipy.optimize: 函数优化器以及根查找算法;

scipy.signal: 信号处理工具;

scipy.sparse: 稀疏矩阵和稀疏线性系统求解器;

scipy.special: SPECFUN(这是一个实现了许多常用数学函数的 Fortran 库)的包装器。

scipy.stats: 标准连续和离散概率分布、各种统计检验方法和更好的描述统计法;

scipy.weave: 利用内联 C++ 代码加速数组计算的工具。

主要分为4部分吧,前端、后台、数据库和web服务器,下面我简单介绍一下:

1.前端:这个毋庸置疑,你所看到的所有web页面几乎都是基于Html,CSS和JS的,页面的布局、色彩的搭配、动态效果的实现,几乎都是基于前端的,这个是网页的骨架和基础,所以做web应用开发的话,首先需要学习的就是前端,不需要你对前端知识多么的精通,掌握Vue、React等框架,但最起码能看懂页面大概代码,标签属性等,所以,如果你对前端一点都不了解的话,建议花个几天时间学习,很简单,网上资料很多:

2.后台:前端开发出来的页面都是静态的,一成不变的,要实现数据的实时更新显然是不可能的,这个时候就需要后台开发语言,完成与数据库的交互,将数据库中存储的数据实时取出展现到前台页面,开发语言就很多了,像常见的Java,C#,Php,Python,Go等都可以(几乎都有对应web框架),如果你没有任何基础,又想快速开发出网页的话,可以学习一下Php,专门用于web开发的语言,学习起来很简单:

3.数据库:这个就不多说了,你所看到的几乎所有网站在存储数据的时候,都会使用数据库,不管是关系型还是非关系型的,一是存储方便,二是容易管理,至于数据库的种类,这个就很多了,像常见的MySQL,SQL Server,Oracle,PostgreSQL等,都可以作为后端存储数据库,至于选择哪个数据库,这个根据实际项目需求而定,如果你没有任何数据库基础的话,可以学习一下MySQL数据库,开源、简单、容易学习:

4.web服务器:开发的网站,当用户进行访问时,需要对用户提供服务,也就是对用户的请求做出响应,用户请求哪一个页面,返回哪一个页面,这时候就需要web服务器,至于种类的话,有Apacha,Tomcat,IIS和Nginx等,比较流行的是Nginx,这个需要根据项目实际需求而定,性能、负载等都需要考虑,感兴趣的话,可以自己研究一下:

就分享这4个方面吧,要想完完全全弄懂这4个方面需要花费很大的功夫和时间,建议选择一两个方向学懂学通就行,其他方面可以了解一下,网上也有相关教程和资料