本文是译文,可以转载,但需注明出处,点击这里可以获取原文,有删减。
本系列博文包含四篇文章:
【译】技能测试解决方案:Python中的数据科学(一)——Q1-Q15
【译】技能测试解决方案:Python中的数据科学(二)——Q16-Q30
【译】技能测试解决方案:Python中的数据科学(三)——Q31-Q45
【译】技能测试解决方案:Python中的数据科学(四)——A1-A45及其解释
简介:
Python在数据科学界正在迅速发展。 我们越来越倾向于使用这样的生态系统——数据科学家对多种工具感到舒适,并根据特殊情况和堆栈使用正确的工具。
如果你打算把Python作为数据科学的首选工具,或正在学习它,那这是检查你技能的绝好机会。
技能测试问题
Q1

上述数据集包含分类型和连续型变量,每个数据科学家都应该明白处理两者的方法不大一样。
下列代码中,哪一项能计算出数据集中分类型变量的个数?

A - (train.dtype == 'object').sum()
B - (train.dtypes == object).sum()
C - (train.dtypes == object).count()
D – 以上选项都不能

Q2

上述数据集中有多个分类型变量,每一个分类型变量都有多个分类值。如,“Married” 变量就有两个分类值———— “Yes” and “No”。
下列代码中,哪一项能计算出“Education”变量的不同分类值?

A - train.Education.individuals()
B - train.Education.distinct()
C - train.Education.unique()
D – 以上选项都不能

Q3

我们发现,上述数据集中,“LoanAmount”变量有许多缺失值。
下列代码中,哪一项能统计出“LoanAmount”变量的缺失值数量?

A - train.count().maximum() - train.LoanAmount.count()
B - (train.LoanAmount == NaN).sum()
C - (train.isnull().sum()).LoanAmount
D – 以上选项都能

Q4

上述数据集中,“Credit_History”变量也有很多缺失值,我们首先需要分析“Credit_History”变量非空的用户群。
我们创建一个叫 “new_dataframe”的数据框,该数据框包含“train”数据框中“Credit_History”变量非空的样本。
下列哪行代码可以实现这个需求:

A - new_dataframe = train[~train.Credit_History.isnull()]
B - new_dataframe = train[train.Credit_History.isna()]
C - new_dataframe = train[train.Credit_History.is_na()]
D – 以上选项都不能

Q5

在上述数据集中,我们发现 Loan_id = LP001005的样本含有较少的信息(如:大多数变量都为空)。建模过程中,这类样本会产生较大的噪音,因此,建议过滤掉这类样本。
如果一个样本中5个变量值为空,我们决定剔除它们,并把剩余的数据集存放在一个叫“temp”的数据框中。
下列哪行代码可以实现这个需求:

A - temp = train.dropna(axis=0, how='any', thresh=5)
B - temp = train.dropna(axis=0, how='all', thresh=5)
C - temp = train.dropna(axis=0, how='any', thresh=train.shape[1] - 5)
D – 以上选项都不能

Q6

接下来,我们进行数据切片操作。第一个合理的操作是使数据满足建模需求。在上述数据中,我们发现, “Property_Area” 变量含有较少的“Semiurban”值。因此,我们决定把 “Semiurban” 和 “Urban”合并成一个新的类,并把这个类命名为“City”类,除此之外,我们还把“Rural” 重命名为 “Village”。
下列哪行代码可以实现这个需求:

A - >>> turn_dict = ['Urban': 'City', 'Semiurban': 'City', 'Rural': 'Village']>>> train.loc[:, 'Property_Area'] = train.Property_Area.replace(turn_dict)
B - >>> turn_dict = {'Urban': 'City', 'Semiurban': 'City', 'Rural': 'Village'}>>> train.loc[:, 'Property_Area'] = train.Property_Area.replace(turn_dict)
C - >>> turn_dict = {'Urban, Semiurban': 'City', 'Rural': 'Village'}>>> train.iloc[:, 'Property_Area'] = train.Property_Area.update(turn_dict)
D – 以上选项都不能 

Q7

到目前为止,你离建立第一个模型又进了一步。也许你会发现一些比较有趣的事情:“Gender”变量取值为“Male”且“Married”变量取值为“Yes”的用户占比较高。
下列哪行代码可以检验这个假设?

A - (train.loc[(train.Gender == 'male') && (train.Married == 'yes')].shape[1] / float(train.shape[0]))*100
B - (train.loc[(train.Gender == 'Male') & (train.Married == 'Yes')].shape[1] / float(train.shape[0]))*100
C - (train.loc[(train.Gender == 'male') and (train.Married == 'yes')].shape[0] / float(train.shape[0]))*100
D – 以上选项都不能 

Q8

上述数据是训练集和测试集,注意到两个集合的变量并不匹配,如:训练集中有些字段并不在测试集中,反之亦然。
假设两个集合均已“数据框”的形式入库,下列哪行代码可以找出测试集存在但是训练集不存在的变量:

A - set(test.columns).difference(set(train.columns))
B - set(test.columns.tolist()) - set(train.columns.tolist())
C - set(train.columns.tolist()).difference(set(test.columns.tolist()))
D – 以上选项都不能 

Q9

或许你会注意到,Python中绝大多数机器学习库及相应的算法都要求数据以数字的方式呈现。
因此,我们需要对“Gender”变量进行转换,如:M转换成1,F转换成0。
下列哪行代码可以实现这个需求?

A - train.ix[:, 'Gender'] = train.Gender.applymap({'M':1,'F':0}).astype(int)
B - train.ix[:, 'Gender'] = train.Gender.map({'M':1,'F':0}).astype(int)
C - train.ix[:, 'Gender'] = train.Gender.apply({'M':1,'F':0}).astype(int)
D – 以上选项都不能 

Q10

在上述数据集中,“Product_ID”一栏数据包含已售产品的唯一标识。可能出现这种情况:一些产品出现在测试集但是不出现在训练集中,这给建模造成一定的难度,因为对于新产品而言,没有它的“历史”信息。
下列哪行代码可以验证测试集中的“Product_ID”是训练集的子集?

A - train.Product_ID.unique().contains(test.Product_ID.unique())
B - set(test.Product_ID.unique()).issubset(set(train.Product_ID.unique()))
C - train.Product_ID.unique() = test.Product_ID.unique()
D – 以上选项都不能 

Q11

上述数据中,“Age” 变量是一个分类型变量,把它转换成一个数值型变量或许更有意义。
下列哪行代码可以实现把“Age” 变量的组平均值代替原始值。如:以8.5和21代替0-17和17-25?

A - train['Age'] = train.Age.apply(lambda x: (np.array(x.split('-'), dtype=int).sum()) / x.shape)
B - train['Age'] = train.Age.apply(lambda x: np.array(x.split('-'), dtype=int).mean())
C – A和B都可以
D – 以上选项都不能 

Q12

实际数据中,有一种情景是,数值型变量的值隐藏在某一个字符型变量中,建模前,我们必须清洗此类变量。
例如:上述数据集中,“Ticket”变量包含一个或者两个模块,现假设我们所需数值始终存在该变量的最后一个模块中。
下列哪行代码可以实现这个需求?

A - train.Ticket.str.split(' ').str[0]
B - train.Ticket.str.split(' ').str[-1]
C - train.Ticket.str.split(' ')
D – 以上选项都不能 

Q13

或许你已注意到,上述数据集是著名的泰坦尼克号数据集。该数据有很多缺失值,处理缺失值的一种方法是用“已知值”填充。
我们决定对 “Age”变量进行如下填充:用同性别的“Age”的平均值填充,下列哪行代码可以实现这个需求?

A - train = train.groupby('Sex').transform(lambda x: x.fillna(x.sum()))
B - train['Age'] = train.groupby('Sex').transform(lambda x: x.fillna(x.mean())).Age
C - train['Age'] = train.groupby('Sex').replace(lambda x: x.fillna(x.mean())).Age
D – 以上选项都不能 

Q14

接下来,我们想知道乘客的位置是怎样影响乘客的生存概率的,一个假设是,“S” (S=SouthHampton)的乘客,尤其是女性乘客,在这次事故中生存概率会非常高。
问题是,怎样计算来自“S”的女性乘客数量?

A - train.loc[(train.Embarked == 'S') and (train.Sex == 'female')].shape[0]
B - train.loc[(train.Embarked == 'S') & (train.Sex == 'female')].shape[0]
C - train.loc[(train.Embarked == 'S') && (train.Sex == 'female')].shape[0]
D – 以上选项都不能 

Q15

仔细观察“Name”变量,貌似每个“Name”都含有一个头衔,例如:“Braund, Mr. Owen Harris”含有“Mr.”头衔。
下列哪行代码可以统计出乘客姓名中含有“Mr.”头衔的数量?

A - (train.Name.str.find('Mr.')==False).sum()
B - (train.Name.str.find('Mr.')>0).sum()
C - (train.Name.str.find('Mr.')=0).sum()
D – 以上选项都不能 

友情链接:
【译】技能测试解决方案:Python中的数据科学(二)——Q16-Q30
【译】技能测试解决方案:Python中的数据科学(三)——Q31-Q45
【译】技能测试解决方案:Python中的数据科学(四)——A1-A45及其解释

【译】技能测试解决方案:Python中的数据科学(一)相关推荐

  1. 2017年首份中美数据科学对比报告,Python受欢迎度排名第一,美国数据工作者年薪中位数高达11万美金

    最新消息,Kaggle最近对机器学习及数据科学领域进行了全行业深度调查,调查共收到超过 16,000 份回复,受访内容包括最受欢迎的编程语言是什么,不同国家数据科学家的平均年龄是什么,不同国家的平均年 ...

  2. Python中的数据遍历操作

    1 前言 今天在学习FaceBoxes~ 看到一个语句不是很懂, 就是这里面的zip操作,感觉Python中的数据遍历的语句还是挺多样的,于是想着用笔记记录一下~ 2 Python中的数据遍历操作 2 ...

  3. Python中的数据序列(元组、集合、字典)

    Python中的数据序列 一.元组的定义与使用 1.为什么需要元组 思考:如果想要存储多个数据,但是这些数据是不能修改的数据,怎么做? 答:列表?列表可以一次性存储多个数据,但是列表中的数据允许更改. ...

  4. Python中的数据可视化工具与方法——常用的数据分析包numpy、pandas、statistics的理解实现和可视化工具matplotlib的使用

    Python中的数据可视化工具与方法 本文主要总结了: 1.本人在初学python时对常用的数据分析包numpy.pandas.statistics的学习理解以及简单的实例实现 2.可视化工具matp ...

  5. 在python中数据的输出用哪个函数名_在Python中,数据的输出用哪个函数名

    在Python中,数据的输出用哪个函数名 工业机器人按照坐标形式可以分为().A:圆柱坐标机器人B:球坐标机器人C:直角坐标机器人D:关节坐标机器人 生物膜上脂质主要是磷脂.A:对B:错 再结晶退火主 ...

  6. c语言和python中的数据储存方式

    c语言和python中的数据储存方式 1. c语言 c语言在定义变量的时候是根据数据的类型就开辟了固定大小的内存空间 然后再将数据储存到对应的内存空间中,并且将变量和内存空间绑定 此时无论数据大小都是 ...

  7. 一文惊醒梦中人:Python是打开数据科学大门的钥匙 - 思路、心态【附库、练习资源链接】

    本文价值在于梳理Python对于数据科学的作用以及入门分析,也提供了一系列的书目以及网站学习资源,给到我们整个学习流程的轮廓,还是不错的.正文如下: 您正在踏上数据科学之旅,每个人都建议您从学习如何编 ...

  8. 为何python攀上数据科学巅峰?调查显示Python超越R

    根据KDnuggets 2017年最新调查,Python生态系统已经超过了R,成为了数据分析.数据科学与机器学习的第一大语言.本文对KDnuggets的此项调查结果做了介绍,并补充了一篇文章讲解为何P ...

  9. Python超越R,为何Python攀上数据科学巅峰?

    根据 KDnuggets最新调查,Python 生态系统已经超过了 R,成为了数据分析.数据科学与机器学习的第一大语言.本文对 KDnuggets 的此项调查结果做了介绍,并补充了一篇文章讲解为何 P ...

最新文章

  1. 黑客渗透入门教程 第一课:粗暴的端口扫描
  2. LeetCode 462 Minimum Moves to Equal Array Elements II
  3. Windows下删除.svn文件夹的最简易方法
  4. Apache Tomcat/7.0.47
  5. 视觉SLAM十四讲学习笔记-第四讲---第五讲学习笔记总结---李群和李代数、相机
  6. docker镜像编码注意事项
  7. 项目代码matlab
  8. 李清照 —— 别是一家
  9. SSM框架原理,作用及使用方法,详细解释
  10. 做好震荡筑底打持久战的准备
  11. 边缘计算一看就懂:真的很形象
  12. 你的微博也被盗赞?试试HSTS强制HTTPS加密 1
  13. 天猫成立房产部门,利用区块链承载交易多项服务功能
  14. 深入理解python--线程、进程与协程(1)
  15. Jackson JsonNode和ObjectNode的使用
  16. linux文件夹缩略图不显示,在Linux终端中使用lsix显示缩略图图像
  17. 只有快速上网 芝麻才能开门
  18. QT中$$PWD的意思(转)
  19. pb数据窗口显示图片_王者荣耀背后的腾讯自研数据库TcaplusDB实践
  20. openvz相关资料

热门文章

  1. 右手残疾学计算机学什么专业好,我是右手和右脚残疾 左手和左脚好的 可以学残疾人驾照吗...
  2. java freemark 使用_freemarker单独使用介绍
  3. markdown 图片居中_写作者必备技能:markdown 微信使用markdown
  4. 三次握手,四次挥手(大白话)
  5. 数字ab写成c语言表达式,《c语言程序设计》复习题.pdf
  6. php 实现防盗链,php中如何实现防盗链的示例
  7. VB 一行代码的诀窍
  8. 使链接在新窗口中打开
  9. 刚刚,英伟达发布最强无人车AI芯片,以及一系列自动驾驶新产品
  10. 百度北汽结盟:2021年量产L4级无人车