{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

数据分析需要用什么技术?java还python好一点?

ormsformsf 回答0 收藏1
收藏问题

5条回答

ThinkSNS

ThinkSNS

回答于2022-06-28 14:44

先说结论,

问题1回答:数据分析技术简单来说可归类为统计分析技术和数据可视化两类。

问题2回答:目前阶段做数据分析使用Python更高效,方便一点。

希望我作为数据分析师的经验能对你有帮助


1、数据分析的本质

数据分析是指用适当的统计方法对收集的大量数据进行数据分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程,最后再通过得到的结论应用到行业中解决实际问题。

简单概括来说数据分析就是-- 处理数据然后推进优化现实工作。

数据分析应用在各行各业,互联网,工业,咨询行业等,有一个共同点,数据分析都是为业务服务的,用于解决实际运营中出来的问题,或者探索业务可优化的空间。

明白了这一点,就知道数据分析不是目的,数据分析的结果产出对业务的实际提升和优化才是目的,数据分析只是一种解决的方法,既然是方法,我们就要考虑它的效果,成本(学习成本,使用成本)等。


2.数据分析的技能要求

以现在最热门的互联网行业的数据分析而言,随便从招聘网站上截取部分应届生数据分析师招聘JD,选取应届生是因为相对要求低一点,对题主想要入门应该更有参考下价值。

不同公司业务不同,对于“岗位职责”先可以不用太关注,我们这里主要看“任职资格”这一部分,关于技能方面,可以看到有SQL,Python/R,Spark,hive,BI工具等。

看起来需要掌握的很多,那我们再来通过大数据的方法看一下,获取招聘网站上的招聘要求,根据工具关键词出现的频率,绘制成数据分析所需工具词云图

可以看到,Excel,sql,python,PPT,hive,spss等出现的评率最高,同时可以可以看到还有很多其他的工具技能要求,但这几个出现频率最高的肯定是基本要求,那么是否这些工具我们都需要掌握呢,这个根据两个方面,一是你所处的工作阶段,二是作为数据分析师的不同方向。

我这里从数据分析方法的角度将数据分析方向分为三个:业务数据分析,数据挖掘分析,大数据分析。将每个方向对应的工具和方法做成思维导图如下:

可以见到,每个方向所对应的主要工具要求都不一样,一般来说,从业务数据分析》数据挖掘分析》大数据分析的技能门槛是逐步提高的,而且技能要求也是叠加的,也就是说例如数据挖掘分析师也需要掌握业务数据分析的工具和方法。

但这并不是数据分析师的发展路径,这只是数据分析不同的方向,如果对业务数据分析非常感兴趣且工作非常有成效,有很好的数据分析思维,那么完全可以往业务方向发展,只掌握SQL,EXCEL,PPT等成为商业分析师和集团战略分析师也是没有问题的,所以根据自己的情况,不用过分追求技术,别忘记,数据分析是为业务服务的!


根据以上部分我们可以总结回答下题主的第一个问题(数据分析需要的技术),结合上图,可以归纳为描述性统计分析技术(业务数据分析),探索性统计分析技术(数据挖掘,大数据分析),数据可视化(将数据分析结果图表化,撰写报告用或汇报用)。


3.Python

VS Java, 更高效,方便一点

既然题主提出Python和Java的对比,说明对编程语言和数据分析还是有一定了解的,结合上面2部分的分析,题主可能实际想知道的是Python和Java哪一个更适合做探索性的数据分析(数据挖掘和大数据分析),做简单的探索性分析其实用SPSS和R语言等一样可行。

但探索性数据分析里目前非常重要且流行的一个方法是机器学习,目前机器学习的主要框架如Tensorflow, sklearn等均是基于Python语言,因为应用广泛且被证明是高效可行的,所以目前来看使用成本相对较低,另外考虑到公司里的团队合作,使用同样的编程语言,团队交流合作也会更加高效。

另外涉及学习成本,Python出名的灵活便捷使其成为数据分析的首选,使用Python做数据分析,掌握基本语法之后,学会使用Numpy,Pandas,matplotlib等库之后就可以开始数据分析,实现同样的数据分析功能,先比于Java, Python用更少的代码即可实现, 另外Python的众多数据分析相关的开源库也提供了很好的数据分析平台。

而Java并非在数据领域很少使用,相反它是大数据平台的基础,例如Hadoop等大数据平台是基于Java, 但这部分更多的是数据开发和数据仓库方向的技术开发的内容,与数据分析有较大区别。即使是大数据分析师,在使用大数据平台时,掌握Hive sql 也能完成取数要求,并不需要掌握Java。


综上,数据分析技术因数据分析方向和阶段各异,主要是统计分析和数据可视化,现阶段Python比Java更适合做数据分析。谢谢

评论0 赞同0
  •  加载中...
leeon

leeon

回答于2022-06-28 14:44

这是一个非常好的问题,作为一名IT从业者,我来回答一下。

首先,随着大数据技术的落地应用,数据分析作为大数据的常见任务会逐渐增多,未来不仅IT(互联网)行业会需要进行大量的数据分析,传统行业领域也会逐渐释放出大量的数据分析任务。

从当前的技术体系来看,目前常见的数据分析方式有两种,一种是统计学方式,另一种是机器学习方式,而无论采用哪种数据分析方式,通常都离不开程序设计。当前在生产环境下,数据分析任务通常都基于平台来展开,比如Hadoop、Spark就是比较常见的数据分析平台。

在Hadoop和Spark平台下,采用Java和Python都可以,同时也可以采用Scala和R等编程语言,开发人员可以根据自身的知识结构来选择具体的编程语言,而对于初学者来说,当前学习Python语言是不错的选择。

采用Python进行数据分析有三方面好处,其一是Python语言自身比较简单易学,初学者很容易上手;其二是Python语言有众多的库可以使用,比如Numpy、Matplotlib、Pandas等,这些库对于提升Python数据分析能力有非常直接的帮助;其三是Python语言本身就是一门全场景编程语言,具有较强的落地应用能力。

从当前的使用情况来看,在数据分析领域,Python语言的上升趋势还是比较明显的,而且数据分析人员也比较愿意使用Python,与Java语言主要应用在IT(互联网)行业不同,Python语言在传统行业的应用也比较普遍。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!

评论0 赞同0
  •  加载中...
davidac

davidac

回答于2022-06-28 14:44

我猜楼主问这个问题,主要还是对数据分析技术不太了解


先说结论:

如果你是想搭建完整的数据分析解决方案,从存储,数据处理和清洗,分析,可视化,那就用java,毕竟java这块解决方案和框架较多,比如hadoop,spark,flink等

如果你只是纯数据分析,数据集比较单一,比如想快速在excel或数据库中,检索,查询,提炼自己想要的数据,就用python


我们来看看目前企业对数据分析的需求吧:

20%的数据发挥着80%的业务价值;
80%的数据请求只针对20%的数据。


目前来看,不管是数据存储处理、分析还是挖掘,最完整和成熟的生态圈还是基于关系型数据库,比如报表、联机分析等工具;另外就是数据分析人员更偏重于查询分析语言如SQL、R、Python数据分析包而不是编程语言。

企业大数据平台建设的二八原则是,将20%最有价值的数据——以结构化的形式存储在关系型数据库中供业务人员进行查询和分析;而将80%的数据——以非结构化、原始形式存储在相对廉价的Hadoop等平台上,供有一定数据挖掘技术的数据分析师或数据工程师进行下一步数据处理。经过加工的数据可以以数据集市或数据模型的形式存储在NoSQL数据库中,这也是后面要讲到的“离线”与“在线”数据。

数据库到数据仓库,是事务型数据到分析型数据的转变,分析型数据需要包括的是:分析的主题、数据的维度和层次,以及数据的历史变化等等。而对大数据平台来说,对分析的需求会更细,包括:

查询:快速响应组合条件查询、模糊查询、标签

搜索:包括对非结构化文档的搜索、返回结果的排序

统计:实时反映变化,如电商平台的在线销售订单与发货计算出的库存显示

挖掘:支持挖掘算法、机器学习的训练集


针对不同的数据处理需求,可能需要设计不同的数据存储,还需要考虑如何快速地将数据复制到对应的存储点并进行合适的结构转换,以供分析人员快速响应业务的需求。


JAVA技术栈:

Hadoop

一个分布式系统基础架构。

解决了大数据(大到一台计算机无法进行存储,一台计算机无法在要求的时间内进行处理)的可靠存储(HDFS)和处理(MapReduce)。


Hive

是建立在Hadoop之上的,使用Hadoop作为底层存储的批处理系统。(可以理解为MapReduce的一层壳)

Hive是为了减少MapReduce jobs的编写工作。

HBase

HBase是一种Key/Value系统,它运行在HDFS之上。

Hbase是为了解决Hadoop的实时性需求。

Spark和Storm

Spark和Storm都是通用的并行计算框架。
解决Hadoop只适用于离线数据处理,而不能提供实时数据处理能力的问题。

区别:
1. Spark基于这样的理念,当数据庞大时,把计算过程传递给数据要比把数据传递给计算过程要更富效率。而Storm是把数据传递给计算过程。

2. 基于设计理念的不同,其应用领域也不同。Spark工作于现有的数据全集(如Hadoop数据)已经被导入Spark集群,Spark基于in-memory管理可以进行快讯扫描,并最小化迭代算法的全局I/O操作。Storm在动态处理大量生成的“小数据块”上要更好(比如在Twitter数据流上实时计算一些汇聚功能或分析)。



Python技术栈


一张图搞定

python技术栈

评论0 赞同0
  •  加载中...
宋华

宋华

回答于2022-06-28 14:44

Java大数据:

Java语言应用广泛,可以应用的领域也非常多,有完整的生态体系,另外Java语言的性能也非常不错。Java与大数据的关系非常密切,一方面目前做大数据开发的程序员很多都是从Java程序员转过去的,另一方面Hadoop平台本身就是基于Java开发的,所以目前Java在大数据开发中的使用还是非常普遍的。

但是Java语言自身的复杂性让很多程序员感觉它有点“重”,格式化的东西有点多,所以在Spark平台下,很多程序员更愿意使用Scala语言,而Scala就是基于Java语言构建的,所以有Java基础再学习Scala还是比较轻松的。

单学Java以后的就业方向单一,薪资就是Java程序员的基本水平;而Java大数据工程师,以后的就业可以从事Java方面的工作,也可以涉猎大数据方面的工作,因为对大数据技术知识有所涉猎,所以谈薪资的资本会高一些:

由于大数据产业的火爆,相关职位的待遇也是水涨船高。可以看到,大数据相关职位的平均薪资已经超过月薪20K。

Python大数据:

Python语言目前在大数据和人工智能领域有广泛的应用,原因就是Python语言简单、直接、方便。Python语言是脚本式语言,所以学习起来比较简单,脚本语言的天然属性就是直接,所以Python在语法结构上比Java要“轻”很多。

另外,由于Python有丰富的库支持,所以Python做软件开发也非常“直接”,程序员的作用有点像做“集成”的感觉。目前Python在Hadoop和Spark平台下的使用都非常普遍,而且越来越多的Java程序员转向使用Python,因为没人愿意复杂。

但是Python缺点也比较明显,那就是Python的性能远不及Java,另外与大数据平台的耦合度也不如Java好。但是如果你使用Python做算法实现、数据分析、数据呈现等应用是完全没有问题的,效率也比较高。

总之,如果做大数据开发,小编建议Java和Python最好都学习一下(主学Java),语言本身就是工具。

评论0 赞同0
  •  加载中...
khlbat

khlbat

回答于2022-06-28 14:44

对于小中型数据一般通过python就可以完成数据分析,对于大数据的数据分析需要使用分布式数据存储和计算技术,一些常用的工具,hadoop,hive,spark,flink等。

掌握数据可视化工具使用,可以帮助我们快速了解业务数据,比如pyecharts,seaborn,plotly,matplotlib等

在进行python数据分析时候,可以借助一些工具库快速完成,比如pandas,numpy

一般公司中多用python来进行数据分析,毕竟数据科学狠多插件都非常的好用,希望对你有帮助,让我们共同进步。

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<