当今世界对信息技术的依赖程度在不断加深,每天都会有⼤量的数据产⽣,我们经常会感到数据越来越多,但是要从中发现有价值的信息却越来越难。这⾥所说的信息,可以理解为对数据集处理之后的结果,是从数据集中提炼出的可⽤于其他场合的结论性的东⻄,⽽从原始数据中抽取出有价值的信息的这个过程我们就称之为 数据分析 ,它是数据科学⼯作的⼀部分。



定义: 数据分析是有针对性的收集、加⼯、整理数据并采⽤统计、挖掘等技术对数据进⾏分析和解释的科学 和艺术



数据分析师的职责和技能栈


        HR在发布招聘需求时,通常将数据⼯程、数据分析、数据挖掘等岗位都统称为数据分析岗位,但是根据⼯作性质的不同,⼜可以分为偏⼯程的数据治理⽅向 、偏业务的 数据分析⽅向 、偏算法的 数据挖掘⽅向 、偏开发的 数据开发 ⽅向 、偏产品的 数据产品经理 。我们通常所说的数据分析师主要是指 业务数据分析师 ,很多数据分析师的职业⽣涯都是从这个岗位开始的,⽽且这个岗位也是招聘数量最多的岗位。业务数据分析师在公司通常不属于研发部⻔⽽属于运营部⻔,所以这个岗位也称为数据运营商业分析 ,这类⼈员通常也被称为 “BI ⼯程师 ” 。通常招聘信息对这个岗位的描述(JD )是:



1. 负责相关报表的输出。


2. 建⽴和优化指标体系。


3. 监控数据波动和异常,找出问题。


4. 优化和驱动业务,推动数字化运营。


5. 找出潜在的市场和产品的上升空间。


        根据上⾯的描述,作为业务数据分析师,我们的⼯作不是给领导⼀个简单浅显的结论,⽽是结合公司的业务,完成监控数据揪出异常找到原因探索趋势 等⼯作。作为数据分析师,不管是⽤ Python 语⾔、 Excel 、 SPSS 或其他的商业智能⼯具,⼯具只是达成⽬标的⼿段,数据思维是核⼼技能 ,从实际业务问题出发到最终 发现数据中的商 业价值 是终极⽬标。数据分析师在很多公司只是⼀个基础岗位,精于业务的数据分析师可以向 数据分析经理数据 运营总监 等管理岗位发展;对于熟悉机器学习算法的数据分析师来说,可以向 数据挖掘⼯程师算法专家 ⽅向发展,⽽这些岗位除了需要相应的数学和统计学知识,在编程能⼒⽅⾯也⽐数据分析师有更⾼的要求,可能还需要有


        ⼤数据存储和处理的相关经验。数据治理岗位主要是帮助公司建设数据仓库或数据湖,实现数据从业务系统、埋点系统、⽇志系统到分析库的转移,为后续的数据分析和挖掘提供基础设施。数据治理岗位对 SQL 和 HiveSQL 有着较⾼的要求,需要熟练的使⽤ ETL ⼯具,此外还需要对 Hadoop ⽣态圈有⼀个较好的认知。作为数据产品经理,除了传统产品经理的技能栈之外,也需要较强的技术能⼒,例如要了解常⽤的推荐算法、机器学习模型,能够为算法的改进提供依据,能够制定相关埋点的规范和⼝径,虽然不需要精通各种算法,但是要站在产品的⻆度去考虑数据模型、指标、算法等的落地。


        以下是我总结的数据分析师的技能栈,仅供参考。


1. 计算机科学(数据分析⼯具、编程语⾔、数据库)


2. 数学和统计学(数据思维、统计思维)


3. ⼈⼯智能(机器学习中的数据挖掘算法)


4. 业务理解能⼒(沟通、表达、经验)


5. 总结和表述能⼒(商业 PPT 、⽂字总结) 数据分析的流程


        我们提到数分析这个词很多时候可能指的都是狭义的数据分析 ,这类数据分析主要⽬标就是⽣成可视化报表并通过这些报表来洞察业务中的问题。⼴义的数据分析 还包含了数据挖掘的部分,不仅要通过数据实现对业务的监控和分析,还要利⽤机器学习算法,找出隐藏在数据背后的知识,并利⽤这些知识为将来的决策提供⽀撑。简单的说, 个完整的数据分析应该包括基本的数据分析和深⼊的数据挖掘两个部分


        基本的数据分析⼯作⼀般包含以下⼏个⽅⾯的内容,当然因为⾏业和⼯作内容的不同会略有差异。


1. 确定⽬标(输⼊):理解业务,确定指标⼝径


2. 获取数据:数据仓库( SQL 提数)、电⼦表格、三⽅接⼝、⽹络爬⾍、开放数据集等


3. 清洗数据:缺失值 / 重复值 / 异常值处理、数据变换(格式化、规范化)、离散化等


4. 数据透视:运算、统计、分组、聚合、可视化


5. 数据报告(输出):数据发布,⼯作成果总结汇报


6. 分析洞察(后续):解释数据的变化,提出对应的⽅案深⼊的数据挖掘⼯作通常包含以下⼏个⽅⾯的内容,当然因为⾏业和⼯作内容的不同会略有差异。


1. 确定⽬标(输⼊):理解业务,明确挖掘⽬标


2. 数据准备:数据采集、数据描述、数据探索、质量判定等


3. 数据加⼯:提取数据、清洗数据、数据变换、特殊编码、降维、特征选择等


4. 数据建模:模型⽐较、模型选择、算法应⽤


5. 模型评估:交叉检验、参数调优、结果评价


6. 模型部署(输出):模型落地、业务改进、运营监控、报告撰写


数据分析相关库


        使⽤ Python 从事数据科学相关的⼯作是⼀个⾮常棒的选择,因为 Python 整个⽣态圈中,有⼤量的成熟的⽤于数据科学的软件包(⼯具库)。⽽且不同于其他的⽤于数据科学的编程语⾔(如:Julia 、 R ), Python 除了可以⽤于数据科学,能做的事情还很多,可以说 Python 语⾔⼏乎是⽆所不能的。


三⼤神器


1. NumPy :⽀持常⻅的数组和矩阵操作,通过 ndarray 类实现了对多维数组的封装,提供了操作这些数组的⽅法和函数集。由于 NumPy 内置了并⾏运算功能,当使⽤多核 CPU 时, Numpy 会⾃动做并⾏计算。


2. Pandas : pandas 的核⼼是其特有的数据结构 DataFrame 和 Series ,这使得 pandas 可以处理包含不同类型数据的表格和时间序列,这⼀点是NumPy 的 ndarray 做不到的。使⽤ pandas ,可以轻松顺利的加载各种形式的数据,然后对数据进⾏切⽚、切块、处理缺失值、聚合、重塑和可视化等操作。


3. Matplotlib : matplotlib 是⼀个包含各种绘图模块的库,能够根据我们提供的数据创建⾼质量的图形。此外,matplotlib 还提供了 pylab 模块,这个模块包含了很多像 MATLAB ⼀样的绘图组件。


其他相关库


1. SciPy :完善了 NumPy 的功能,封装了⼤量科学计算的算法,包括线性代数、稀疏矩阵、信号和图像处理、最优化问题、快速傅⾥叶变换等。


2. Seaborn : seaborn 是基于 matplotlib 的图形可视化⼯具,直接使⽤ matplotlib 虽然可以定制出漂亮的统计图表,但是总体来说还不够简单⽅便,seaborn 相当于是对 matplotlib 做了封装,让⽤户能够以更简洁有效的⽅式做出各种有吸引⼒的统计图表。


3. Scikit-learn : scikit-learn 最初是 SciPy 的⼀部分,它是 Python 数据科学运算的核⼼,提供了⼤量机器学习可能⽤到的⼯具,包括:数据预处理、监督学习(分类、回归)、⽆监督学习(聚类)、模式选择、交叉检验等。


4. Statsmodels :包含了经典统计学和经济计量学算法的库。