本文是译文,能够转载,但需注明出处,点击这里能够获取原文,有删减。
本系列博文包含四篇文章:
【译】技能测试解决方案:Python中的数据科学(一)——Q1-Q15
【译】技能测试解决方案:Python中的数据科学(二)——Q16-Q30
【译】技能测试解决方案:Python中的数据科学(三)——Q31-Q45
【译】技能测试解决方案:Python中的数据科学(四)——A1-A45及其解释
简介:
Python在数据科学界正在迅速发展。 咱们愈来愈倾向于使用这样的生态系统——数据科学家对多种工具感到温馨,并根据特殊状况和堆栈使用正确的工具。
若是你打算把Python做为数据科学的首选工具,或正在学习它,那这是检查你技能的绝好机会。
技能测试问题
Q1python
上述数据集包含分类型和连续型变量,每一个数据科学家都应该明白处理二者的方法不大同样。
下列代码中,哪一项能计算出数据集中分类型变量的个数?算法
A - (train.dtype == 'object').sum() B - (train.dtypes == object).sum() C - (train.dtypes == object).count() D – 以上选项都不能
Q2segmentfault
上述数据集中有多个分类型变量,每个分类型变量都有多个分类值。如,“Married” 变量就有两个分类值———— “Yes” and “No”。
下列代码中,哪一项能计算出“Education”变量的不一样分类值?app
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 – 以上选项都不能
Q5spa
在上述数据集中,咱们发现 Loan_id = LP001005的样本含有较少的信息(如:大多数变量都为空)。建模过程当中,这类样本会产生较大的噪音,所以,建议过滤掉这类样本。
若是一个样本中5个变量值为空,咱们决定剔除它们,并把剩余的数据集存放在一个叫“temp”的数据框中。
下列哪行代码能够实现这个需求:3d
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及其解释