Python与数据分析概述
前言
本文大概介绍了数据分析与Python
目录
一、认识数据分析
二、熟悉Python数据分析工具
三、安装Python的Anaconda发行版
四、掌握Jupyter Notebook常用功能
一、认识数据分析
1、数据分析的方法论与数据分析方法
数据分析的方法论——理论纲领 | 数据分析的方法——具体操作 | ||
七何分析法 | 寻找差距 | 比较分析法 | |
数量特征 | 平均分析法 | ||
演绎树分析法 | 归纳数据 | 分组分析法 | |
交叉计算 | 立体分析法 | ||
PEST分析法 | 预测 | 线性 | 一元回归、多元回归 |
对数回归 | |||
金字塔分析法 | 非线性 | 多项回归 | |
(历史引申)预测 | 时间序列 | ||
4P营销理论 | 差异检验 | 单因方差、多因方差 | |
U检验、t检验 | |||
SWOT分析法 | 模型=编程 | 相关分析、主成分分析、聚类分析 | |
深度学习 | |||
用户行为理论、生命周期理论、STP理论等 | 机器学习 | ||
AI |
(一)七何分析法——建立框架
(1)别名:5W2H
(2)来源:第二次世界大战中美国陆军兵器修理部首创
(3)用法:事先列出问题,然后一一用数据解答
(4)内容:
- Why——什么原因
- What——什么事情
- Who——是什么人
- When——什么时间
- Where——什么地点
- How——怎么做
- How much——多少钱
(5)优点:提高逻辑训练;富有启发意义;快速找出问题
(6)实用性:活动的决策与执行;广泛用于企业管理;弥补问题的遗漏;提高分析的效率;节约写报告的时间;有条理地进行分析
(7)举例:用七何分析法进行用户社交软件习惯的分析
分析因素 | 分析问题 | |
Why |
用户使用社交软件的原因是什么? 社交软件有哪些功能比较吸引用户注意力? |
根据问题,寻找对应的数据,对号入座,即可得到有效的答案。 |
What |
社交软件需要向客户提供什么产品与服务? 社交软件满足了用户哪些需求? |
|
Who |
主要用户群体是那些? 用户具有哪些特点? |
|
When |
用户会在什么时候使用社交软件? 用户会在何时下载社交软件? |
|
Where |
用户会在哪里使用社交软件? 用户会在哪里下载社交软件? |
|
How |
用户是怎样下载社交软件的? 用户是如何进行消费的? |
|
How much | 用户在社交软件上的消费是多少? |
(二)演绎树分析法——问题分层
(1)含义:又称逻辑分析法。需要尽可能地将所有与数据分析目的相关的问题,分层次地罗列出来,从最高层开始,逐步向下扩展,这样便于找出相关联的所有项。
(2)模式:就像树生长树枝一般分析相应的数据
(3)用法:列出一个已知问题放在最高位置,然后将问题的所有子问题分层罗列出来
(4)操作要点:
- 问题归纳:将类似问题总结归纳成一个要点,根据要点选择对应的数据
- 组织架构:将要点组织起来,形成一个分析架构,尽量做到不重不漏的原则
- 相互关联:架构中各要点之间,需要关联性,这样才能有效地运用
(5)优点:理清分析思路,避免进行重复和无关的思考,通过将一个已知问题进行细分,并确定问题解决的优先顺序,用以把控解决方案的实用性
(6)典型架构:解决型、假设型、建议型
(7)举例:用演绎树分析法进行公司产品销量下降的分析
已知问题 | 问题分层 | 进一步细分…… |
产 品 销 量 下 降 |
产品问题? | 产品质量? |
产品特色? | ||
产品包装? | ||
用户问题? | 用户厌倦? | |
脱离需求? | ||
用户体验? | ||
其他问题? | 体验不好? | |
营销不好? | ||
…… |
(三)PEST分析法——设计环境
(1)含义:又称宏观环境分析法。把控影响企业的一切宏观变量。
(2)用法:从4个方面把控企业宏观环境。政治环境(Political)、经济环境(Economic)、社会环境(Social)、技术环境(Technological)。
方面 | 涉及面 | 关键指标 |
P |
国家的政策制度与体制,政府方针,有关的法律法规等方面,能影响企业的运作与利润 |
产业政策、政治体制、政府管制、财务政策、劳动保护法、税法、利率等 |
E | 国家的经济制度与情况,消费者收入,就业率等方面,能影响企业的战略性决策 | 利率水平、GDP的变化趋势、居民收入水平、失业率、劳动生产率、市场需求情况 |
S | 社会现象、民族特色、文化传统、教育水平、风俗习惯等方面,能影响企业产品的种类与推广方式 | 居民生活方式、受教育情况、年龄层次、性别比例、消费习惯、道德观念等 |
T | 有关技术领域的发展,技术商品化速度等方面,能影响企业的产品开发、产品发展走向 | 新技术的发展趋势、新技术的传播速度、商品化速度、国家重点培养的项目等 |
(四)金字塔原理分析法——建立逻辑
(1)含义:由一个总的思想统领多组思想构建成逻辑关系
(2)来源:1973年由麦肯锡公司顾问巴巴拉·明托发明的
(3)模式:就像一个金字塔一样坚不可摧地建立数据逻辑
(4)模型:
(5)举例:用金字塔分析原理分析产品销量增长过慢的模型
(五)4P营销理论分析法——业务指导
(1)含义:通过4个要素(产品、价格、渠道、促销)的相关数据进行企业业务指导
(2)来源:最早出现在1960年左右出版的《基础营销学》上
(3)4要素说明
要素 | 解释 |
产品 (Product) |
产品可以是人,也可以是物;可以是有形的,也可以是无形的。总之,能够让人们使用,进行消费,以及满足人们的某些需求,能为企业产生利润的东西就可以命名为产品 |
价格 (Price) |
价格是企业为产品定的售价,是消费者购买产品时需要花费的费用 |
渠道 (Place) |
产品从生产车间辗转到消费者手上,经历的所有过程,皆是销售渠道,例如运输商、分销商、销售商等 |
促销 (Promotion) |
企业通过一些促销活动,来吸引消费者购买,提高品牌形象等。例如,买一送一、特价销售、买2件第3件半价销售等 |
(4)营销理论的分析模板
(六)SWOT分析法——战略竞争
(1)含义:又称态势分析法,主要通过数据分析了解企业自身的竞争优势
(2)来源:20世纪80年代旧金山大学管理学院教授提出
(3)用法:分为两部分(内部与外部)进行分析,明确自身发展的战略方向
(4)模型:将4个要素根据影响程度以矩阵型的方式排序
要素 | 解释 |
优势 (Strengths) |
企业内部优势,包括:有利的竞争模式、受用喜爱的品牌形象、足够支持企业特色的技术、产品质量良好的美誉等 |
劣势 (Weaknesses) |
产品内部劣势,包括:跟不上时代、特色技术的缺乏、制度管理不清晰、研发成果落后、资金不够运转、竞争力差等 |
机会 (Opportunities) |
企业外部机会,包括:新产品的开发、新营销手段的推广、根据新需求进行研发产品、新市场的出现等 |
威胁 (Threats) |
企业外部威胁,包括:同质化产品剧增、用户需求的改变、竞争对手的崛起、新的竞争对手的出现等 |
(5)整体运行模式
2、数据分析的概念
广义的数据分析包括狭义数据分析和数据挖掘。
狭义数据分析是指根据分析目的,采用对比分析、分组分析、交叉分析和回归分析等分析方法,对收集来的数据进行处理和分析,提取有价值的信息,发挥数据的作用,得到一个特征统计量结果的过程。
数据挖掘则是从大量的、不完全的、有噪声的、模糊的、 随机的实际应用数据中,通过应用聚类、分类、回归和关联规则等技术,挖掘潜在价值的过程。
3、数据分析的流程
- 需求分析:数据分析中的需求分析也是数据分析环节的第一步和最重要的步骤之一,决定了后续的分析方向、方法。
- 数据获取:数据是数据分析工作的基础,是指根据需要分析的结果提取、收集数据。
- 数据预处理:是指对数据进行数据合并、数据清洗、数据变换和数据标准化,数据变换后使得整体数据变为干净整齐,可以直接用于分析建模这一过程的总称。
- 分析与建模:是指通过对比分析、分组分析、交叉分析、回归分析等分析方法和聚类分类、关联规则、智能推荐等模型与算法发现数据中的有价值信息,并得出结论的过程。
- 模型评价与优化:模型评价是指对已经建立的一个或多个模型,根据其模型的类别,使用不同的指标评价其性能优劣的过程。
- 部署:是指将通过了正式应用数据分析结果与结论应用至实际生产系统的过程。
4、数据分析应用场景
(1)客户分析
- 主要是客户的基本数据信息进行商业行为分析,首先是界定目标客户,根据客户的需求,目标客户的性质,所处行业的特征以及客户的经济状况等基本信息使用统计分析方法和预测验证法,分析目标客户,提高销售效率。
- 其次了解客户的采购过程,根据客户采购类型、采购性质进行分类分析制定不同的营销策略。
- 最后还可以根据已有的客户特征,进行客户特征分析、客户忠诚分析、客户注意力分析、客户营销分析和客户收益分析。
(2)营销分析
囊括了产品分析,价格分析,渠道分析,广告和促销分析四部分。
- 产品分析:主要是竞争产品分析,通过对竞争产品的分析指定自身产品策略
- 价格分析:可以分为成本分析和售价分析。成本分析的目的是降低不必要成本,售价分析的目的是制定符合市场的价格
- 渠道分析:对产品的销售渠道进行分析,确定最优的渠道配比
- 广告与促销分析:结合客户分析,实现销量的提升,利润的增加
(3)社交媒体分析
以不同社交媒体渠道生成的内容为基础,实现不同社交媒体的用户分析,访问分析,互动分析等。同时,还能为情感和舆情监督提供丰富的资料。
- 用户分析:根据用户注册信息,登陆平台的时间点和平时发表的内容等用户数据,分析用户个人画像和行为特征
- 访问分析:通过用户平时访问的内容,分析用户的兴趣爱好,进而分析潜在的商业价值
- 互动分析:根据互相关注对象的行为预测该对象未来的某些行为特征
(4)网络安全
新型的病毒防御系统可使用数据分析技术,建立潜在攻击识别分析模型,监测大量网络活动数据和相应的访问行为,识别可能进行入侵的可以模式,做到未雨绸缪。
(5)设备管理
通过物联网技术能够收集和分析设备上的数据流,包括连续用电、零部件温度、环境湿度和污染物颗粒等无数潜在特征,建立设备管理模型,从而预测设备故障,合理安排预防性的维护,以确保设备正常工作,降低因设备故障带来的安全风险。
(6)交通物流分析
物流是物品从供应地向接受地的实际流动。通过业务系统和GPS定位系统获得数据,对于客户使用数据构建交通状况预测分析模型,有效预测实时路况、物流状况、车流量、客流量和货物吞吐量,进而提前补货,制定库存管理策略。
(7)欺诈行为检测
身份信息泄露盗用事件逐年增长,随之而来的是欺诈行为和交易的增多。公安机关,各大金融机构,电信部门可利用用户基本信息,用户交易信息,用户通话短信信息等数据,识别可能发生的潜在欺诈交易,做到提前预防未雨绸缪。
5、数据分析常用工具
目前主流的数据分析语言有R,Python,MATLAB三种程序语言。
R | Python | MATLAB | |
语言学习难易程度 | 入门难度低 | 入门难度一般 | 入门难度一般 |
使用场景 |
数据分析,数据挖掘, 机器学习,数据可视化等 |
数据分析,机器学习,矩阵运算, 科学数据可视化,数据图像处理, web应用,网络爬虫,系统运维等 |
矩阵运算,数值分析, 科学数据可视化,机 器学习,符号运算, 数字图像处理,数 字信号处理,仿真 模拟等 |
第三方支持 |
拥有大量的Packages, 能够调用C,C++, Fortran,Java等其 他程序语言 |
拥有大量的第三方库,能够简便 地调用C,C=+,Fortran,Java等 其他程序语言 |
拥有大量专业的工具箱 在新版本中加入了对C, C++,Java地支持 |
流行领域 | 工业界≈学术界 | 工业界>学术界 | 工业界≤学术界 |
软件成本 | 开源免费 | 开源免费 | 商业收费 |
二、熟悉Python数据分析工具
1、Python数据分析优势
- 语法简单精简:对于初学者来说,比起其他编程语言,Python更容易上手
- 有很强大的库:可以只使用Python这一种语言去构建以数据为中心的应用程序
- 功能强大:Python是一个混合体,丰富的工具集使它介于传统的脚本语言和系统语言之间。Python不仅具备所有脚本语言简单和易用地特点,还提供了编译语言所具有的高级软件工程工具。
- 不仅适用于研究和原型构建,同时也适用于构建生产系统:研究人员和工程技术人员使用同一种编程工具,会给企业带来非常显著的组织效益,并降低企业的运行成本
- Python是一门胶水语言。Python程序能够以多种方式轻易地与其它语言的组件”粘结“在一
2、Python数据分析常用类库
(1)IPython——科学计算标准工具集的组成部分
- 是一个增强的Python shell,目的是提高编写、测试、调试Python代码的速度
- 主要用于交互式数据并行处理,是分布式计算的基础构架
- 提供了一个类似于Mathematica的HTML笔记本,一个基于Qt框架的GUI控制台,具有绘图、多行编辑以及语法高亮显示等功能
(2)Numpy(Numerical Python)——Python科学计算的基础包
- 快速高效的多维数组对象ndarray
- 对数组执行元素级的计算以及直接对数组执行数学运算的函数
- 读写硬盘上基于数组的数据集的工具
- 线性代数运算、傅里叶变换以及随机数生成的功能
- 将C,C++,Fortran代码集成到Python的工具
(3)Scipy——专门解决科学计算中各种标准问题域的模块的集合
Scipy主要包含了8个模块,不同的子模块有不同的应用,如插值、积分、优化、图像处理和特殊函数等。
- scipy.integrate 数值积分例程和微分方程求解器
- scipy.linalg 扩展了由numpy.linalg提供的线性代数例程和矩阵分解功能
- scipy.optimize 函数优化器(最小化器)以及跟查找算法
- scipy.signal 信号处理工具
- scipy.sparse 稀疏矩阵和稀疏线性系统求解器
- scipy.special SPECFUN(这是一个实现了许多常用数学函数的Fortran库)的包装器
- spicy.stats 检验连续和离散概率分布、各种统计检验方法以及更好的描述统计方法
- spicy.weave 利用内联C++代码加速数组计算的工具
(4)Pandas——数据分析核心库
- 提供了一系列能够快速、便捷地处理结构化数据的数据结构和函数
- 高性能的数组计算功能以及电子表格和关系型数据库(如SQL)灵活的数据处理功能
- 复杂精细的索引功能,以便便捷地完成重塑、切片和切块、聚合及选取数据子集等操作
(5)Matplotlib——绘制数据图表的Python库
- Python的2D绘图库,非常适合创建出版物上用的图表
- 操作比较容易,只需几行代码即可生成直方图、功率谱图、条形图、错误图和散点图等图形
- 提供了pylab的模块,其中包括了NumPy和pyplot中许多常用的函数,方便用户快速进行计算和绘图
- 交互式的数据绘图环境,绘制的图表也是交互式的
(6)scikit-learn——数据挖掘和数据分析工具
- 简单有效,可以供用户在各种环境下重复使用
- 封装了一些常用的算法方法
- 基本模块主要有数据预处理、模块选择、分类、聚类、数据降维和回归6个,在数据量不大的情况下,scikit-learn可以解决大部分的问题
(7)spyder——交互式Python语言开发环境
- 提供高级的代码编辑、交互测试和调试等特性
- 包含数值计算环境
- 可用于将调试控制台直接集成到图形用户界面的布局中
- 模仿MATLAB的“工作空间”,可以很方便地观察和修改数组的值
三、安装Python的Anaconda发行版
1、Anaconda
- 预装了大量常用Packages
- 完全开源和免费
- 额外的加速和优化是收费的,但对于学术用途,可以申请免费的License
- 对全平台和几乎所有Python版本支持
2、安装流程
安装包——“next”——“I agree”——“All Users(requires admin privileges)”——选择安装路径——“Install”——“finish”
四、掌握Jupyter Notebook的基本功能
1、打开并新建一个Notebook
打开Jupyter Notebook
- “Text File”为纯文本型
- “Folder”为文件夹
- “Python 3”表示Python运行脚本
2、含义
Jupyter Notebook(此前被称为IPython notebook)是一个交互式笔记本,支持运行40多种编程语言。Jupyter Notebook的本质是一个Web应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和markdown。
用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。
3、Jupyter Notebook的界面及其构成
选择“Python 3”选项,进入Python脚本编辑界面,Notebook文档由一系列单元(cell)构成,主要有两种形式的单元。
- 代码单元:这里是读者编写代码的地方
- Markdown单元:在这里对文本进行编辑
编辑界面
- 编辑模式:用于编辑文本和代码
- 命令模式:用于执行键盘输入的快捷命令
4、快捷键
- “ESC”:进入命令模式
- “Y”:切换到代码单元
- “M”:切换到Markdown单元
- “B”:在本单元的下方增加一单元
- “H”:查看所有快捷命令
- “shift+Enter”组合键:运行代码
5、Jupyter Notebook的高级功能
(1)Markdown
Markdown是一种可使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。
- 标题:标题是标明文章和作品等内容的简单语句。一个“#”字符代表一级标题,以此类推
- 列表:列表是一种由数据项构成的有限数列,即按照一定的线性顺序排列而成的数据项的集合
- 对于无序列表,使用星号、加号或者减号作为列表标记
- 对于有序列表,则使用数字“,” “(一个空格)”
- 加粗/斜体:前后有两个星号或下划线表示加粗,前后有3个星号或下划线表示斜体
- 表格:代码的第一行表示表头,第二行分隔表头和主体部分,从第三行开始,每一行代表一个表格行;列与列之间用符号“|”隔开,表格每一行的两边也要有符号“|”
- 数学公式编辑:LaTeX是写科研论文的必备工具,Markdown单元中也可以使用LaTeX来插入数学公式
- 在文本行中插入数学公式,应在公式前后分别加上一个“$”符号
- 如果要插入一个数学区块,则在公式前后分别加上两个“$$”符号
(2)导出功能
- Notebook还有一个强大的特性,就是导出功能。可以将Notebook导出为多种格式,如HTML,Markdown,reST,PDF(通过LaTeX)等格式
- 导出功能可通过选择“File”——“Download as”级联菜单中的命令实现
数据人的第一篇博客,还望各位大佬批评指正。