简书不维护了,欢迎关注我的知乎:波罗学的个人主页
本文由 泰阁志-解密大数据 共创课程出品
非常感谢余老师为大家总结的常见问题FAQ。
关于环境与CODING
1. 什么是终端(命令行窗口)?在哪里打开?
终端是一个基于文本的用来查看、 处理、 和操作您的计算机上的文件的应用程序。
打开方法:Windows系统,在程序中查找 cmd; Mac系统,在Spotlight中查找terminal。
更多内容可参考 命令行界面简介
2. 在官网下载 anaconda 很慢,下不下来怎么办?
(感谢李斯龙同学提供的解决方案)
使用国内镜像地址下载:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
3. 安装完anaconda,在命令行中输入 conda upgrade -all
后,显示找不到 conda 命令怎么办?
(感谢李佳同学提供的答案)
一般是环境路径设置的问题,需要添加conda环境变量:
export PATH=xxx/anaconda/bin:$PATH
将xxx替换成anaconda的安装路径。
4. 如何创建 Jupyter Notebook?为什么我打开后不能执行代码?
打开 Jupyter 的三种方式:
- 找到 Jupyter Notebook 可执行程序,并点击打开。
- 先打开 Anaconda Navigator, 在其中找到 Jupyter Notebook 打开。
- 在命令行中输入
jupyter notebook
创建 notebook 的方式:
在打开Jupyter Notebook后,进入相应的目录,在界面右上方点击按钮New
,
在下拉菜单中选择 ’Python 2‘ 或 ’Python 3‘。
打开后不能运行代码,很可能是因为创建了文本文件,而非notebook文件。
5. windows系统中打开数据文件,显示很混乱,看不清怎么办?
- Windows中查看文本推荐 Notepad++
- Mac中推荐 TextWrangler。
6. 导入数据出错,找不到文件怎么办?
首先要确认文件路径是否写正确,最简单的方法是将数据和notebook文件放在同一个文件夹下,这样导入数据时只需要写数据文件名即可。
7. 当我使用 pd.read_csv
时显示错误 ’NameError: name 'pd' is not defined‘ 是怎么回事?
一般都要先导入相应的Python模块才能使用其提供的方法。这里就需要先导入pandas模块,使用 import pandas as pd
8. 关于绘制直方图,使用 plt.hist()
画出的图形每一竖条都是相连的,没有竖线分隔怎么办?
可使用参数 rwidth 来设置每个竖条的宽度,这样竖条之间就有空白可以间隔了。比如 plt.hist(data, rwidth=0.9)
。
9. 绘制直方图时,中文标题无法显示怎么办?
一般默认是英文,可在绘图前做如下设置。
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
如果系统中没有相应的字体,可考虑方案二
(mac系统,由周瑞珍、李斯龙同学提供):
from matplotlib.font_manager import *
myfont = FontProperties(fname='/Library/Fonts/Lantinghei.ttc')
plt.title(u'体重直方图',fontproperties=myfont)
Lantinghei.ttc是系统fonts目录下的一个字体文件,如果该目录下没有这个文件也可以改成其他的中文字体文件
(Windows系统,李佳同学提供的 matplotlib中文显示根本的解决办法)
进入python的安装目录,Lib/site-packages/matplotlib/mpl-data找到matplotlibrc配置文件
- 打开配置文件,找到下面这行
#font.serif : Bitstream Vera Serif, New Century Schoolbook, Century Schoolbook L, Utopia, ITC Bookman, Bookman, Nimbus Roman No9 L, Times New Roman, Times, Palatino, Charter, serif
然后将前面的注释符号去掉 - 找到中文字体放到matplotlib字体库中
在windows文件夹下,C:/Windows/Fonts/Microsoft YaHei UI复制该字体,然后粘贴到Lib/site-packages/matplotlib/mpl-data/fonts/ttf文件夹下,并且重命名为Vera.ttf
注释:雅黑字体的文件后缀为ttc,可更改为ttf。至于为什么要重命名,这一步实际上是把matplotlib中一个默认的字体替换为复制过来的中文字体。
其他的根本解决问题的方案我都测试过并没有效果,这个方法是目前解决最彻底,对我有效的解决方式,你也可以试一试
10. 绘制直方图,设置中文标题时,显示错误 ’SyntaxError: invalid character in identifier‘ 是怎么回事?
代码一般都是英文输入,当与中文混排时,特别要注意中英文的切换,该同学使用了中文输入法下的括号,导致出错。
11. 下载Anaconda后无法安装怎么办?
- 首先确定安装的版本与系统配置是否一致;
- 其次查看下载的是图形界面安装包还是命令行安装包,两者的安装方式不一样;
- 第三,查看下载的安装包大小与官网给出的大小是否一致,很可能没下载完成。如果是情况三,建议使用国内镜像下载,回到问题2查看镜像地址。
关于数据科学
1. 什么是数据科学(Data Science)?
数据科学是用科学的方法从各种结构化、非结构化数据中提取有用信息的一门交叉学科。通过数据收集、清洗、分析、可视化等过程,用数据来回答特定领域的问题。它涉及多个领域的技术和理论,包括数学、统计、信息科学、计算机科学,尤其是机器学习、数据挖掘、数据库、可视化等分支领域。(参考维基百科)
2. 数据科学中都有哪些职业角色?
数据科学家(data scientists):有人这样描述数据科学家, 他们比统计学家更懂编程,而比软件工程师更懂统计。虽然数据科学家和数据分析师有相同的工作目标,即从大量数据中发掘价值,但显然数据科学家需要更精湛的技能,他们能完成端到端的数据科学项目,建立并微调数据分析的各类模型,并能从事开放问题的研究等等。
数据分析师(data analysts):他们研究数据并提供相应的报告或可视化图表。可以将数据分析师看作数据科学家的低配版,即初级数据科学家,一般是从事数据科学工作的第一步。数据分析师不需要具备高深的研究背景来发明新算法,但是他们要熟练掌握现有工具来解决问题。
-
数据工程师(data engineers):他们是软件工程师的一种,为数据科学家们提供软件基础设施服务,建设强壮的数据管道来清洗、转移、聚合多种杂乱无章的数据,并存放到特定的数据库中。他们需要管理数据库系统,写复杂的查询语句来抽取数据,维护多台服务器,懂得Hadoop等分布式系统。
3. 数据科学的工作流程是怎样的?
虽然数据分析是一个不断迭代的过程,而且不同的步骤会有些交叉,但我们依然可以将该过程简化为以下7个步骤:
- 明确问题
- 收集原始数据
- 数据清洗
- 数据探索
- 应用模型进行深度分析
- 传达分析结果
- 使分析过程可再现
在一个数据项目中,我们绝大多数的努力一般都将花费在获取和清洗数据(步骤2-3)以及展示分析结果和过程(步骤6-7)上。
参考:Data science done well looks easy
4. 从事数据科学所需要掌握的技能都有哪些?
要从事数据科学,我们需要从数学知识、计算机知识、专业知识这三个维度来考虑。
- 具有分析思维。
- 基本的大学数学知识,包括微积分和线性代数。
- 统计学知识,包括描述统计学和推论统计学。
- 编程基础,如Python、R语言、SQL语句。
- 算法知识,如回归、分类、聚类算法等。
- 数据可视化,将你的分析结果展示出来。
- 领域专业知识,如商业知识、生物学知识等,视具体分析的问题而定。
更详细的技能清单请参考 Ultimate Skills Checklist for Your First Data Analyst Job
关于工具
1. 数据分析的常用工具都有哪些?
- SQL:从数据库中抽取数据的程序语言,是数据科学的必备技能。
- Excel:容易上手,所见即所得,无需编程即可对数据进行运算和作图。
- R:专门为数据科学而设计的语言,在数据科学领域比Python略微受欢迎些。
- Python:简单易学,功能强大且丰富,是大学教学中最受欢迎的编程语言。
- Spark:专为大规模数据处理而设计的基于内存计算的引擎。
- Tableau:帮人们查看并理解数据,可进行快速分析、可视化并分享结果。
- 其他:Perl,Matlab,C#,Mahout,Hadoop,Java
以上工具按使用占比排名,数据来源: 2015 Data Science Salary Survey
2. 我该采用哪种编程语言做数据分析呢?Python 还是 R ?
Python和R语言都是数据科学中常用的编程语言,时常有关于该使用哪一种语言的争论,但真是仁者见仁智者见智了。作为一名出色的数据科学家,两种语言都应该掌握。但作为初学者该先学哪一种语言呢?我们推荐Python,下面列出了这Python和R的比较,供您参考。
- 使用人群:程序员使用Python较多,而研究人员多使用R语言。
- 句法:Python具有类似英语的句法结构,使得代码更易理解。R的句法与其他程序语言有些区别,不太常见,对有一定编程基础的同学容易造成理解障碍。
- 学习曲线: 由于以上句法的原因,R 比 Python 难学一点。Python非常适合编程入门的学习者。
- 热门程度:在Github上最受欢迎的程序语言排名中,Python总是位列前五,而R语言则徘徊在前10以外。
- 数据分析工具包:Python作为多用途的程序语言,在数据分析工具包方面的确做的没有R语言好。但是Python也有像Pandas这样专门用于数据分析的模块。
- 薪水:平均来看,使用R语言的数据科学家平均薪水比使用Python的高。(但注意这只是相关性,并不一定存在因果关系。)
3. Python的版本该如何选择?
目前Python有两类版本,Python 2.7.x 和 Python 3.x,大部分的Python库都同时支持这两者。大多数情况下 Python 2.7 的代码都能在Python 3 中运行,不过要注意 print
语句。当然大部分新引入Python 3 的特性则不会反向集成到 Python 2.7中。
在这里推荐使用 Python 3,理由如下:
- Python 2.7 将在2020年停止维护。
- IPython将停止对Python 2 的支持,IPython 6.x 将只支持 Python 3。
- Python 3.6 具备许优秀的特性。
4. 用Python做数据分析,有哪些入门资料推荐?
在线视频教程推荐:
书籍推荐:
- 《利用Python进行数据分析》
- 《统计思维 》(免费英文版)
5. 有什么简单的方法安装Python吗?
推荐安装 Anaconda,它是一个开源的Python发行版本,包含了conda、Python等180多个科学包及其依赖项。使用Anaconda的好处是安装简单,并且无需为众多的工具包和安装环境而烦扰。
6. 我想将自己的数据分析过程分享给大家,有什么好的工具吗?
推荐Jupyter Notebook,这是一款展示数据分析过程的利器。不仅能在文档中执行Python代码,更可以将文本、数学公式、代码、图表编辑在同一文件中,用web网页的形式展现出来。
如果你安装了Anaconda,则自动包含了Jupyter。如果在conda环境下,使用如下方式安装:
conda install jupyter notebook
也可以通过pip安装:
pip install jupyter notebook
7. Python 中都有哪些常用的数据分析工具包?
numpy: 是一个用Python实现的科学计算包,提供许多高级的数值编程工具,如矩阵表示、矢量计算以及精密计算库。
pandas: 是Python的一个数据分析包,提供了高效且易用的数据结构和数据分析工具。
matplotlib: 是一个Python的2D绘图库,可以生成出版质量级别的图像。
scipy:用于科学和工程计算的Python软件库。
scikit-learn:用于机器学习的软件库。
8. 有什么好用的代码编辑器推荐吗?
- Windows操作系统推荐 Notepad++
- Mac操作系统推荐 TextWrangler
9. 常见的数据文件格式有哪些?
- CSV:全称 Comma Separated Values,即用逗号分隔的数据文件,可以使用Excel打开,也可以用Python或R读入成数据框(dataframe)。
- JSON:全称 Javascript Object Notation,是便于人和机器读取的轻量数据交换格式。Web服务经常采用此格式来传递数据。
- SQL:全称Structured Query Language,用于查询关系型数据库表。
关于统计分析
1. 做数据分析,需要掌握哪些必备的统计学知识?
- 描述统计学
- 平均值、中位数、众数
- 方差、标准差
- 统计分布: 正态分布、指数分布、二项分布、卡方分布
- 推论统计学
- 假设检验
- 置信区间
- 显著性测试
- 实验设计
- A/B测试
- 实验条件控制
- 双盲测试
- 幂律分布
关于提问的建议:
1. 独立思考
遇到问题时,首先自己独立思考,通过回顾课件、动手实践来找答案。需要注意的是不要关注错了问题的焦点,有时候问题的解决方法不一定在你原先认为的方向上。
2. 求助网络
自己想不出来时,求助网络。使用Google网上搜索,当中文找不到结果时,采用英文搜索。对于代码错误,可以直接将错误提示拷贝到Google中搜索。 要相信:你所遇到的问题大部分都已经被他人解决过了。
3. 社群讨论
向网络求助无效,并在查看了我们社区建立的答疑讨论区以及FAQ后,仍无结果,那么非常欢迎在答疑讨论区抛出你的问题。
4. 总结记录
在问题解决后,并非万事大吉,你需要将问题以及解决办法总结写下来,避免以后遇到类似的问题。更欢迎写成心得文章投稿到简书的“解密大数据”专题。
致谢:
最后还是非常感谢解密大数据社群的小伙伴们的支持和鼓励,让我们一起成长。