首页 开发编程 正文

php怎么判断多维 如何学习数据分析

该类函数允许用多种方法来操作数组和与之交互。它包含Excel、数据可视化、数据分析思维、数据库、统计学、业务、以及Python。这七part的内容刚好涵盖了一位数据分析师需要掌握的基础体系,掌握Excel的函数有助于后续的学习,常见的Excel函数全部涵盖在这里了」中,year、month、weekday、weeknum、day、da...

php怎么判断多维,数组函数是什么意思?

数组函数库,该类函数允许用多种方法来操作数组和与之交互。数组的本质是储存,管理和操作一组变量。 PHP 支持一维和多维数组,可以是用户创建或由另一个函数创建。有一些特定的数据库处理函数可以从数据库查询中生成数组,还有一些函数返回数组。

如何学习数据分析?

想要成为数据分析师,给大家分享一份初级的入门指南!

它包含Excel、数据可视化、数据分析思维、数据库、统计学、业务、以及Python。

这七part 的内容刚好涵盖了一位数据分析师需要掌握的基础体系,也是一位新人从零迈入数据大门的知识手册。

第一part:Excel

每一位数据分析师都脱离不开Excel。

它是日常工作中最常用的工具,如果不考虑性能和数据量,它可以应付绝大部分分析工作。虽然现在机器学习满地走,Excel依旧是无可争议的第一工具。

Excel的学习分为两个部分。

掌握各类功能强大的函数,函数是一种负责输入和输出的神秘盒子。把各类数据输入,经过计算和转换输出我们想要的结果。

在SQL,Python以及R中,函数依旧是主角。掌握Excel的函数有助于后续的学习,因为你几乎在编程中能找到名字一样或者相近的函数。

在「数据分析:常见的Excel函数全部涵盖在这里了」中,介绍了常用的Excel函数。

清洗处理类:trim、concatenate、replace、substitute、left/right/mid、len/lenb、find、search、text

关联匹配类:lookup、vlookup、index、match、row、column、offset

逻辑运算类:if、and、or、is系列

计算统计类:sum/sumif/sumifs、sumproduct、count/countif/countifs、max、min、rank、rand/randbetween、averagea、quartile、stdev、substotal、int/round

时间序列类:year、month、weekday、weeknum、day、date、now、today、datedif

搜索能力是掌握Excel的不二窍门,工作中的任何问题都是可以找到答案。

第二部分是Excel中的工具。

在「数据分析:Excel技巧大揭秘」教程,介绍了Excel最具性价比的几个技巧。包括数据透视表、格式转换、数组、条件格式、自定义下拉菜单等。正是这些工具,才让Excel在分析领域经久不衰。

在大数据量的处理上,微软提供了Power系列,它和Excel嵌套,能应付百万级别的数据处理,弥补了Excel的不足。

Excel需要反复练习,实战教程「数据分析:手把手教你Excel实战」,它通过网络上抓取的数据分析师薪资数据作为练习,总结各类函数的使用。

除了上述要点,下面是附加的知识点,铺平数据分析师以后的道路。

了解单元格格式,数据分析师会和各种数据类型打交道,包括各类timestamp,date,string,int,bigint,char,factor,float等。

了解数组,以及相关应用(excel的数组挺难用),Python和R也会涉及到 list,是核心概念之一。

了解函数,深入理解各种参数的作用。它会在学习Python中帮助到你。

了解中文编码,UTF8、GBK、ASCII,这是数据分析师的坑点之一。

第二part:数据可视化

数据分析界有一句经典名言,字不如表,表不如图。

数据可视化是分析的常用技巧之一,不少数据分析师的工作就是通过图表观察和监控数据。首先了解常用的图表:

Excel的图表可以100%绘制上面的图形,但这只是基础。

在「数据可视化:你想知道的经典图表全在这」中介绍了各类数据分析的经典图表,除了趋势图、直方图,还包括桑基图、空间图、热力图等额外的类型。

数据可视化不是图表的美化,而是呈现数据的逻辑之美,是揭示数据的内在关联。了解图表的维度和适用场景,比好看更重要。比如桑吉图就是我一直推崇的图表,它并不知名,但是它能清晰的揭露数据内在状态的变化和流向。案例是用户活跃状态的趋势。

Excel的图表操作很傻瓜化,其依旧能打造出一份功能强大的可视化报表。「数据可视化:教你打造升职加薪的报表」教给大家常用的Excel绘图技巧,包括配色选取,无用元素的剔除、辅助线的设立、复合图表等方法。

Excel图表的创造力是由人决定的,对数据的理解,观察和认知,以及对可视化的应用,这是一条很长的道路。

图表是单一的,当面板上绘制了多张图表,并且互相间有关联,我们常称之为Dashboard仪表盘。

上图就是用分析师薪资数据为数据源绘制的Dashboard,比单元格直观不少。我们常常把绘制这类Dashboard的工具叫做BI。

BI(商业智能)主要有两种用途。一种是利用BI制作自动化报表,数据类工作每天都会接触大量数据,并且需要整理汇总,这是一块很大的工作量。这部分工作完全可以交给BI自动化完成,从数据规整、建模到下载。

另外一种是使用其可视化功能进行分析,它提供比Excel更丰富的交互功能,操作简单,而且美观,如果大家每天作图需要两小时,BI能缩短大半。

在「数据可视化:手把手打造BI」教程中,以微软的PowerBI举例,教大家如何读取数据,规整和清洗数据,绘制图表以及建立Dashboard。最后的成果就是上文列举的分析师案例。

BI还有几个核心概念,包括OLAP,数据的联动,钻取,切片等,都是多维分析的技巧,也是分析的核心方法之一。

后续的进阶可视化,将和编程配合。因为编程能够提供更高效率和灵活的应用。而BI也是技术方向的工具,了解技术知识对应用大有帮助。

第三part:数据分析思维数据分析能力的高低,不以工具和技巧决定,而以分析思维决定。

在一场战争中,士兵装备再好的武装,进行再严苛的训练,若是冲锋的方向错了,那么迎接他们的唯有一败涂地。

分析思维决定一场「数据战争」中的冲锋方向。只有先养成正确的分析思维,才能使用好数据。

既然是思维,它就倾向于思考的方式,Excel函数学会了就是学会,分析则不同。大多数人的思维方式都依赖于生活和经验做出直觉性的判断,以「我觉得我认为」展开,好的数据分析首先要有结构化的思维。

麦肯锡是其中领域的佼佼者,创建了一系列分析框架和思维工具。最典型地莫过于金字塔思维。

这篇文章简述了该思维的应用,「快速掌握麦肯锡的分析思维」。你能学会结构化思考,MECE原则,假设先行,关键驱动等方法论。

除此以外,还有SMART、5W2H、SWOT、4P4C、六顶思考帽等,这些都是不同领域的框架。框架的经典在于,短时间内指导新人如何去思考,它未必是最好的,但一定是性价比最优的。数据分析思维,是分析思维的引申应用。再优秀的思考方式,都需要佐证和证明,数据就是派这个用处的,「不是我觉得,而是数据证明」。

现代管理学之父彼得·德鲁克说过一句很经典的话:如果你不能衡量它,那么你就不能有效增长它。如果把它应用在数据领域,就是:如果你不能用指标描述业务,那么你就无法有效增长它。每一位数据分析师都要有指标体系的概念,报表也好,BI也好,即使机器学习,也是围绕指标体系建立的。

下图就是一个典型的指标体系,描述了用户从关注产品、下载、乃至最后离开的整个环节。每一个环节,都有数据及指标以查询监控。

不同业务背景需要的指标体系不同,但有几个建立指标的通用准则。这篇文章深入介绍了「如何建立数据分析的思维框架」。你将区分什么是好指标、什么是坏指标、比率和比例、指标的结构、指标设立的维度等概念。

数据分析不是一个结果,而是一个过程。几乎所有的分析,最终目的都是增长业务。所以比分析思维更重要的是驱动思维落地,把它转化为成果。

数据分析思维是常年累月养成的习惯,一周时间很难训练出来,但这里有一个缩短时间的日常习惯。以生活中的问题出发做练习。

这家商场的人流量是多少?怎么预估?

上海地区的共享单车投放量是多少?怎么预估?

街边口的水果店,每天的销量和利润是多少?怎么预估?

这些开放性问题起源于咨询公司的训练方法,通过不断地练习,肯定能有效提高分析思维。另外就是刷各种CaseBook。

优秀的数据分析师会拷问别人的数据,而他本身的分析也经得起拷问。

第四part:数据库

Excel很容易遇到瓶颈,随着业务的发展,分析师接触的数据会越来越多。对大部分人的电脑,超过十万条数据,已经会影响性能。何况大数据时代就是不缺数据,这时候就需要学习数据库了。

即使非数据岗位,也有越来越多的产品和运营被要求使用SQL。

很多数据分析师戏称自己是跑SQL的,这间接说明SQL在数据分析中有多核心。从Excel到SQL绝对是处理效率的一大进步。

教程内容以MySQL为主,这是互联网行业的通用标准。其实语法差异不大的。

新手首先应该了解表的概念,表和Excel中的sheet类似。「写给新人的数据库指南」是一篇入门基础文章,包括表、ID索引、以及数据库的安装,数据导入等简单知识。

SQL的应用场景,均是围绕select展开。增删改、约束、索引、数据库范式均可以跳过。新手在「SQL,从入门到熟练」教程会学习到最常见的几个语法,select、where、group by、if、count/sum、having、order by、子查询以及各种常用函数。

数据还是分析师薪资数据,它可以和Excel实战篇结合看,不少原理都是相通的。

想要快速掌握,无非是大量的练习。大家可以在leetcode上做SQL相关的练习题,难度从简单到困难都有。「SQL,从熟练到掌握」教程中将会带领大家去刷一遍。

join对新手是一个很绕的概念,教程会从图例讲解,逐步提高难度。从一开始的join关联,到条件关联、空值匹配关联、子查询关联等。最后完成leetcode中的hard模式。

如果想要更进一步,可以学习row_number,substr,convert,contact等函数。不同数据平台的函数会有差异,例如Presto和phpMyAdmin。再想提高,就去了解Explain优化,了解SQL的工作原理,了解数据类型,了解IO。知道为什么union比or的效率快,这已经和不少程序员并驾齐驱。

第五part:统计学

很多数据分析师并不注重统计学基础。

比如产品的AB测试,如果相关人员不清楚置信度的含义和概念,那么好的效果能意味着好么?如果看待显著性?

比如运营一次活动,若不了解描述统计相关的概念,那么如何判别活动在数据上的效果?可别用平均数。

不了解统计学的数据分析师,往往是一个粗糙的分析师。如果你想要往机器学习发展,那么统计学更是需要掌握的基础。

统计知识会教大家以另一个角度看待数据。如果大家了解过《统计数据会撒谎》,那么就知道很多数据分析的决策并不牢靠。

在第一篇教程「解锁数据分析的正确姿势:描述统计」,会教给大家描述统计中的诸多变量,比如平均数、中位数、众数、分位数、标准差、方差。这些统计标准会让新手分析师从平均数这个不靠谱的泥潭中出来。

箱线图就是描述统计的大成者,好的分析师一定是惯用箱线图的常客。

第二篇「解锁数据分析的正确姿势:描述统计(2)」将会结合可视化,对数据的分布进行一个直观的概念讲解。很多特定的模型都有自有的数据分布图,掌握这些分布图对分析的益处不可同日而语。

直方图和箱线图一样,将会是长久伴随分析师的利器。

统计学的一大主要分支是概率论,概率是度量一件事发生的可能性,它是介于0到1之间的数值。很多事情,都可以用概率论解释,「概率论的入门指南」和「读了本文,你就懂了概率分布」都是对其的讲解。

包括贝叶斯公式、二项概率、泊松概率、正态分布等理论。理论不应用现实,那是无根之木,教程中会以运营活动最常见的抽奖概率为讲解,告诉大家怎么玩。

其实数据分析中,概率应用最广泛和最全面的知识点,就是假设检验,大名鼎鼎的AB测试就是基于它的。俗话说得好,再优秀的产品经理也跑不过一半AB测试。

何为假设检验?假设检验是对预设条件的估计,通过样本数据对假设的真伪进行判断。

产品改版了,用户究竟喜不喜欢?调研的评分下降了,这是用户的评价降低了,还是正常的数据波动呢?这些都是可以做假设检验的。它可以说是两面两篇文章的回顾和应用。

「数据分析必须懂的假设检验」依旧以互联网场景讲解各种统计技巧的应用。假设检验并不难,通过Excel的几个函数就能完成。它的难点在于诸多知识点和业务的结合使用,实际公式不需要掌握的多透彻,了解背后的意义更重要。

统计学是一个很广阔的领域,包括方差分析,时间序列等,都有各自不同的应用。大家若感兴趣,可以去阅读各类教材,没错,教材是学习统计学最优的方式。我这类文章堪堪算入门罢了。

第六part:业务

对于数据分析师来说,业务的了解比数据方法论更重要。举个例子,一家O2O配送公司发现在重庆地区,外卖员的送货效率低于其他城市,导致用户的好评率降低。总部的数据分析师建立了各个指标去分析原因,都没有找出来问题。后来在访谈中发觉,因为重庆是山城,路面高低落差比较夸张,很多外卖人员的小电瓶上不了坡…所以导致送货效率慢。这个案例中,我们只知道送货员的送货水平距离,根本不知道垂直距离。这是数据的局限,也是只会看数据的分析师和接地气分析师的最大差异。业务形态千千万万,数据分析师往往难窥一二。我的公众号业务部分也涉及了不少,大家可以通过这几篇文章了解。

一篇文章读懂活跃数据;深入浅出,用户生命周期的运营;获取新增用户,运营都应该知道的事;运营的商业逻辑:CAC和CLV;从零开始,构建数据化运营体系;读懂用户运营体系:用户分层和分群,这些都是互联网运营相关的内容,或多或少涉及了不少业务方面的概念,数据分析人员可以选择性的挑选部分内容。了解业务的数据分析师在职场发展上会更加顺利。

而在「最用心的运营数据指标解读」中,我尝试总结了几个泛互联网领域的指标和业务模型,它们都是通用的框架。

产品运营模型:以移动端APP为主体,围绕AARRR准则搭建起数据框架。包括Acquisition用户获取、Activation用户活跃、Retention用户留存、Revenue营收、Refer传播,以及细分指标。

市场营销模型:以传统的市场营销方法论为基底,围绕用户的生命周期建立框架。包括用户生命周期,生命周期价值、用户忠诚指数、用户流失指数、用户RFM价值等。

流量模型:从早期的网站分析发展而来,以互联网的流量为核心。包括浏览量曝光率、病毒传播周期、用户分享率、停留时间、退出率跳出率等。

电商和消费模型:以商品的交易、零售、购买搭建而起。包括GMV、客单价、复购率、回购率、退货率、购物篮大小、进销存,也包含SKU、SPU等商品概念。

用户行为模型:通过用户在产品功能上的使用,获得精细的人群维度,以此作为分析模型。包括用户偏好、用户兴趣、用户响应率、用户画像、用户分层,还包含点赞评论浏览收藏等功能的相关指标。

除了上述的几个常见模型,数据分析还有其他分支。比如SEO/SEM,虽然可以归类到流量模型,但它并不简单。比如财务分析,商业的各种成本支出也需要专人负责。

在业务知识外,业务层面的沟通也很重要。业务线足够长的时候,沟通往往成为老大难的问题。

业务学习没有捷径,哪怕掌握了诸多模型,不同行业间的业务壁垒会是分析师们的门槛。金融的各类专有领域知识,电子商务不同产品的特性,这些都会影响到分析报告的质量。

在早期,新人最好选择一到两个领域深入了解其业务,然后以此拓展边界。

第七part:Python/R

第七周是最后的学习环节。

是否具备编程能力,是初级数据分析和高级数据分析的风水岭。数据挖掘、BI、爬虫、可视化报表都需要用到编程。掌握一门优秀的编程语言,可以让数据分析师升职加薪,迎娶白富美。数据分析领域最热门的两大语言是R和Python。R的优点是统计学家编写的,缺点也是统计学家编写。涉及各类统计函数和工具的调用,R无疑有优势。但是大数据量的处理力有不逮,学习曲线比较陡峭。

Python则是万能的胶水语言,适用性强,可以将分析的过程脚本化。Pandas、Numpy、SKLearn等包也是非常丰富。

这里的教程以Python为主。

「开始Python的新手教程」将会教大家搭建数据分析环境,Anaconda是功能强大的数据科学工具。Python建议安装Python3+版本,不要选择Python2了。

Python的语法相当简洁,大家print出第一个hello world顶多半小时。就像在Excel上进行运算一样方便。

「开始Python的数据结构」介绍给大家Python的三类数据结构,列表list,元组tuple,以及字典dict。万变不离其宗,掌握这三种数据结构以及相对应的函数,足够应付80%的分析场景。函数式编程为Python一大特色,Python自身就提供不少丰富的函数。很多都和Excel的函数相通,掌握起来非常迅速。另外还有控制流,for、while、if,通常配合函数组合使用。

「了解和掌握Python的函数」教大家如何自定义函数,丰富的函数虽然能偷懒,但是不少场景下,还是需要自己动手撸一个。

能够调第三方包解决,就使用第三方的函数。如果是一个频繁使用的场景,而第三方依靠不了,就自己编一个函数。如果是临时性的场景,写得粗糙点也无所谓。毕竟分析师的代码能力不要求工程师那么严格,所以Python的学习尽量以应用为主,不用像分析师那么严格。

包、模块和类的概念属于进阶知识,不学也不要紧。

「Python的数据分析: numpy和pandas入门」介绍了数据分析师赖以生存的两个包,numpy和pandas,其他Python知识可以不扎实,这两个最好认真掌握。它是往后很多技能树的前置要求。

array,series,dataframe是numpy和pandas的三个数据结构,掌握它们,便算是入门了。后续的两篇教程都是实战。

「用pandas进行数据分析实战」以分析师的薪资作为实战数据。Excel、BI、SQL,一路走来,大家想必对它无比熟悉,这也是最后一次使用它了。教程通过Pandas的各类功能,绘制出一副词云图。

最后一篇教程,将结合以往的知识点,包括业务指标,可视化,描述统计学等内容。「用Python分析用户消费行为」,完成它,不说登堂入室,但也是一位合格的数据分析师了。

它使用某网站的用户消费数据,计算各类常见指标:用户的客单价、人均购买量、回购率、复购率、留存率、平均生命周期等,真正做到融会贯通。用一份数据报告作为毕业作品,也是七周系列最好的结业证书了。

对于没有技术基础的同学,第七part最吃力,但已经完成到这一步,不妨让自己咬咬牙学习下去。

最后

如果能够看完到这里的同学,相信你是对数据分析真正感兴趣的。

如何搭建一套有价值的团队知识管理体系?

这个好说,团队知识管理体系的搭建,就跟我们平时玩的乐高积木一样。通过它,可以搭建出种类繁多,形式各异的“建筑物”。(本文700~1000字,建议阅读时间3~5分钟,你将收获一种搭建知识体系的新思维,认识一种新工具)

其实,掌握好一门工具,是高效搭建有价值的团队管理体系的捷径

人的知识储备量是复杂而零散的,如果没有一套工具去管理这些知识的话,很难生成一套系统的体系。

在这里,你可以把目光放到一款低代码开发工具上,一款华为、海尔、富士通、中铁、燕山大学等企业和组织,都在使用的低代码开发工具——云表。

拿管理思想来说,这是每个人珍贵的知识财富。

在云表这里,通过可视化的“拖拉拽”,即能快速实现你的管理梦想!什么样的团队知识管理体系有价值呢?那当然是,对个人,对团队都有帮助!

高效的业务管理模式,对你的工作有帮助吗?当然!数据透视、数据分析、预警提示、工程日志计划、采购单、报销单、项目合同、薪资核算、扫码入库、一物一码、WMS、HR、MES、ERP、OA、BI......所有的这些,对绽放你的管理思想,有帮助吧?

没错,在云表这里,你只需在类似excel的操作界面,点击鼠标,拖拉拽,就能像搭建乐高积木一样把各种报表、业务功能、业务应用搭建出来。

而流程图、柱状图、扇形图、思维导图、思维框架等,这些有手就行的图表制作,那就更不在话下啦!

提供免费版本,高并发,高可用

目前,云表是有永久免费版本的哈。在这里,你还可以拿它与第三方软硬件集成,外接数据源,生成相应的移动端APP......但这都不是重点,重点是团队知识管理体系的搭建,需要企业每个员工的共同努力。

不过不用担心,云表不仅可以进行权限控制(设置好的模板,只能按规范填写,当然你也可以限制哪个人只能填写哪一部分),还支持海量用户在线协同办公,功能随需查改!

试想一下,企业里面的所有人,你没看错,是所有人,不管是业务人员,还是IT人员,都可以在云表上面,在“千人千面”的系统上,添上自己认为重要的知识架构。

使用者只需要基础的业务知识就可以,不需要借助VBA,更不用懂数据库。

云表生成的移动端APP

云表就相当于一个地皮,而地皮上面的宏伟大厦,任你设计,曲面、椭圆、悬空.......都可以,这是专属你的知识管理体系!大家一起努力,就会落地更好的团队知识管理体系!

想要吗?免费获取方式在此奉上,请留意!

获取方式:

1. 点赞+评论+转发

2. 关注我,点击我的头像,发送关键词:CC

尽情地绽放你的管理思想,去畅享云的“蝴蝶效应”吧!

PHP获取数组最后一个值?

引言

我们对于 PHP 的数组操作乐此不疲,为什么?因为 PHP 编程你几乎时时刻刻都在于数组打交道,对于数组的操作熟练程度,很大一部分因素关系着代码的优劣。

今天我们来说说,如何获取数组的最后一个元素,并且不删除它。

不要小看这个需求,没准儿你还做不对呢 :)

学习时间

如果你首先想到了 array_pop,那很不幸,这个函数可以获取最后一个元素,却把数组更改了。

array_pop 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。如果 array 为空(或者不是数组)将返回 NULL。 此外如果被调用不是一个数则会产生一个 Warning。

这显然不是我们要的结果。

其实实现一个需求的方法是多种多样的,我们尝试使用 10 种不同的办法,来做到这一点。

$x = array_values(array_slice($array, -1))[0]

第一种,使用 array_slice 截取数组 $array 倒数第一个元素。返回的是一个数组。然后使用 array_values 重新编排索引值。因为数组只有一个元素,那么索引值必然是 0。原数组 $array 毫发无损。

$x = array_slice($array, -1)[0];

第二种方法没有考虑关联数组的情况,有可能索引 0 不存在。所以容错性不好。

$x = array_pop((array_slice($array, -1)));

第三种方法,终于用到了 array_pop。不过是在 array_slice 阶段的数组上使用。

$x = array_pop((array_slice($array, -1, 1)));

第四种方法,简直是有魔性了,比第三种办法相比,只是在 array_slice 截断的长度手动指定为 1。

$x = end($array); reset($array);

第五种方法,用到数组指针了。end 返回最后一个元素。然后需要手动恢复指针位置到头部,所以调用了一次 reset 函数。本方法有可能返回关联数组,而不能拿到值。

$x = end((array_values($array)));

第六种方法,严格地为了返回最后一个元素的值,使用 array_values 进行了索引重新编排。

$x = $array[count($array)-1];

第七种方法,直接使用索引了。肯定是假设数组都是默认递增索引的数组,所以 count 获取的长度才有效。该方法容错性差。

$keys = array_keys($array); $x = $array[$keys[count($keys)-1]];

第八种方法,是对第七种的不足的修复。

$x = $array[] = array_pop($array);

第九种方法,我们需要明白,使用连等复制,array_pop 弹出数组的最后一个元素后,同时赋值给 $x。这没问题。赋值给原数组 $array[],这会对关联数组重新排定索引,所以有副作用。

$x = $array[array_key_last($array)];

第十种,这种方法的容错性也极高,因为使用了 array_key_last,有效地考虑了关联数组的情况,而且结果也很取巧。这个方法很棒。但是只有 PHP 7.3 以上的版本才有。

写在最后

好了,大家好好消化一下上面10个方法的优劣,取长补短,深度学习吧。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

本文转载自互联网,如有侵权,联系删除