1+x_大数据应用开发(python)职业技能(中级)

Guff_hys 2024-06-29 17:05:01 阅读 85

数据应用开发(python)职业技能等级证书(中级),1+x证书考题。

题库就是这些题,博主考试的时候全是下面的原题,总分100等于理论40+实操60,二者相加超过60分即可,建议大家把重点放在实操题上。

文末有百度网盘下载地址,供大家免费下载csv文件。

只要大家把这三套题练会,证书手到擒来,博主随便背背就90了

理论部分

单选题

在Linux系统下安装ntp服务的命令正确的是( A )。

A.yum  install  ntp

B.yum  remove  ntp

C.yum  update  ntp

D.yum  list

在实际生广环境中获取的数据可能存在缺失值,为了更好地进行数据分析,通常需要对缺失数据进行识别和处理,下列关于DataFrame.dropna()方法说法正确的是( C )。

A.DataFrame.dropna(axis=1,inplace=True):删除带有空值的行

B.DataFrame.dropna(axis-0,inplaces=Tnue):删除带有空值的列

C.DataFrame.dropna(axis=0,‘how=any’,inplace=True):删除带有空值的行

D.DataFrame.dropna(axis=1,‘how=all’,inplace=True):删除全部为空值的行

下列关于Selenium库的方法和作用不对应的是( C )。

A.element_to_be_clickable()方法:元素可点击

B.element_to_be_selecte()方法:元素可选择,传入元素对象

C.element_located_to_be_selected()方法:元素可选择,传入定位列表

D.invisibility_of_element_located()方法:元素不可见

正确搭建Hadoop集群的步骤是( A )。

①克隆虚拟机

②配置SSH免密码登录

③格式化

④修改配置文件

⑤配置时间同步服务

A.④①②⑤③

B.③②①⑤④

C.⑤①③②④

D.②⑤④①③

若需要构建KNN模型,则在sklearn.neighbors模块中可使用的类是( B ),

A.DecisionTreeClassifier

B.KNeighborsClassifier

C.MLPClassifier

D.KNN

在pandas库中,下列关于DataFrame.groupby()方法说法错误的是(C)。

A.DataFrame.groupby()方法用于数据框分组聚合过程中的分组操作

B.使用DataFrame.groupby()方法分组后的结果并不能直接查看,而是被存在内存中

C.group_keys参数指是否在运行的情况下对返回数据进行降维

D.as_index参数指聚合后的聚合标签是否以DataFrames索引形式输出

下列关于sklearn库的预处理类说法正确的是( B )

A.MinMaxScaler:对特征进行标准差标准化

B.StandardScaler:对特征进行标准差标准化

C.FunctionTransformer:对定量特征进行二值化处理

D.OneHotEncoder:对特征进行自定义函数变换

在HTTP请求过程中,客户端与服务器间的请求与响应的具体步骤为( C )。

①发送HTTP请求

②释放连接TCP连接

③连接Web服务器

④服务器接受请求并返回HTTP响应

⑤客户端解析HTML内容

A.③②①④⑤

B.①③④②⑤

C.③①④②⑤

D.①②③④⑤

在HTTP请求中,客户端向服务器发送一个请求报文,报文中的内容不包括( D ),

A请求的方法

B.URL

C.请求头部

D.响应头部

在Matplotlib库中,设置图形的x轴名称的函数是( C )。

A.matplotlib.pyplot.ylim()函数

B.matplotlib.pyplot.xlim()函数

C.matplotlib.pyplot.xlabel()函数

D.matplotlib.pyplot.ylabel()函数

下列代码的输出结果是( D )

result=list(map(lambda x:x*x,[1,2,3,4,5,6,7,8,9]))

print(result)

A.2,6,12,20,30,42,56,72]

B.[362880]

C.[1,2,3,4.5,6,7,8,9]

D.[1,4,9,16,25,36,49,64,81]

在HTML中,下列状态码表示请求成的是( A ),

A.200

B.400

C.403

D.500

在NumPy库中,下列不属于数组的属性的是( D )。

A.ndim

B.shape

C.size

D.add

通过代码from skleam import metrics"导入评价指标模块后,若需要构建真实标签true_labe和模型预测标签predicted_label的混淆矩阵,则下列可使用的代码是( B )。

A.confusion_matrix(predicted_label,true_label)

B.metrics.confusion_matrix(true_label,predicted_label)

C.metrics.confusion_matrix(predicted_label,true_label)

D.confusion_matrix(true_label,predicted_label)

在Windows系统下,将数据框(DataFrame)对象text存储为D盘下的Excel文件,下列代码正确的是(   B ).

A.text.to_excel(‘D:\text.xisx’)

B.text.to_excel(‘D:\text.xlsx’)

C.text.to_csv(‘D:\text.xisx’)

D.text.to_csv(‘D:\text.xlsx’)

16.下列不属于HTTP/1.1协议请求方法的是( D  ).

A.GET

B.POST

C.DELETE

D.PUSH

关闭集群的具体步骤为( B  )。

①stop-dfs.sh

②stop-yaim.sh

③mr-jobhistory-daemon.sh stop historyserver

A.①②③

B.②①③

C.③②①

D.①③②

在通过代码"from sklearn import tree"导入决策树模块,并通过代码"clf=tree.DecislonTreeClassifler()"构造分类器对像后,分类器对象clf在训练时需要调用的方法是(  D ),

A.clf.train()

B.clf.learn()

C.clf.predict()

D.clf.fit()

在哑变量处理函数pandas.get_dummies()函数中,若要考虑缺失值的存在价值,则需调整的参数是( C  )。

A.prefix

B.prefix_sep

C.dummy_na

D.sparse

Matplotlib库是Python的常用绘图库,下列关于Matplotlib库说法错误的是(  D  )

A.matplotilib.pyplot.xlim():用于限制x轴的显示范围

B.matplotlib.pyplot.figure(figsize=(2,2)):用于创建画布,并设置画布的大小为(2,2)

C.matplotlib.pyplot.subplot(231):用于将图表的整个绘图区域分为2行3列的区域,绘制的图表位于区域中的第1行第1列

D.matplotlib.pyplot.plot(x,y,color=‘b’,linewidth=1.0,linestyle=‘_’:用于绘制折线图,其中参数"color=b"是将线的颜色设置为黑色

关于下列代码说法错误的是(   D  )。

import numpy as np

arr=np.array([0,1,2,3,4])

import pandas as pd

ser=pd.Series([0,1,2,3,4])

A.arr和ser虽然是不同的数据类型,但是同样可以进行加法运算

B.arr和ser表达同样的数据内容

C.arr和ser都是一维数据

D.arr参与运算的执行速度明显比ser快

下列代码的运行结果为( B   )。

import re

var = re.findall(‘.∗.∗’,’(abc)def)[0]

print(var)

A.()

B.(abc)

C.def

D.(def)

下列关于BeautifulSoup中对象类型描述错误的是(   B )

A.name属性可以获取及修改Tag对像名称

B.attrs属性可获取Tag对象的HTML属性,返回值为列表形式

C.string方法可获取Tag对象中的文本字符串内容

D.NavigableString对象无法被编辑

若需要构建逻辑回归模型,则在sklearn.linear_model模块中可使用的类是(   A )

A.LogisticRegression

B.SVC

C.LinearRegression

D.DecisionTreeClassifier

下列关于Jupyter Notebook说法错误的是( B    )

A.Jupyter Notebook可以直接生成一份交互式文档

B.Jupyter Notebook不可以安装Python库

C.Jupyter Notebook可以导出HTML文件

D.Jupyter Notebook可以分享文件

在pandas库中,下列关于缺失值检测说法正确的是(  B  )。

A.DataFrame.isnull()方法可以对缺失值进行处理

B.DataFrame.dropna()方法既可以删除观测记录,也可以删除特征

C.DataFrame.fillna()方法中用于替换缺失值只能是数据框

D.DataFrame.replace()方法能直接对缺失值进行处理

在Matplotlib库中,下列关于柱状图bar函数的参数说法错误的是( B  )。

A.linewidth:表示柱状图中每根柱了边框完度

B.align:表示柱状图中每根柱子的高度

C.width:表示柱状图中每根柱子的宽度

D.color:表示柱状图中每根柱子的颜色

在pandas库中,下列不属于DataFrame.drop()方法的参数是(  C  )。

A.labels

B.level

C.dtype

D.inplace

下列关于pandas.concat()函数、DataFrame.append()方法、pandas.merge()函数和DataFrame.join()方法的说法正确的是(  D  )

A.pandas.concat()函数是常用的主键合并的函数,能够实现数据框之间的内连接和外连接

B.DataFrame.append()方法只能用于进行纵向堆叠,适用于所有数据框之间的纵向堆叠情况

C.pandas.merge()函数是常用的主键合并的函数,但不能够实现数据框之间的左连接和右连接

D.DataFrame.join()方法是常用的主键合并方法,但不能够实现数据框之间的左连接和右连接

.下列可以实现导入页面等待相关库的代码是(  B )。

A.from selenium import webdriver

B.from selenium.webdriver.support.ui import WebDriverWait

C.from selenium.webdriver.common.by import By

D.from selenium.webdriver.support import expected_conditions

若要创建一个3×3的数组,则下列代码错误的是(  C  )。

A.numpy.arange(0,9).reshape(3,3)

B.numpy.eye(3)

C.numpy.random.random([3,3,3])

D.numpy.array([[1,2,3],[4,5,6],[7,8,9]])

下列表示整型转化为布尔型的代码是(   D )。

A.print(‘转化结果为:’,np.f1oat64(42))

B.print(‘转化结果为:’,np.int8(42.0))

C.print(‘转化结果为:’,np.int(True))

D.print(‘转化结果为:’,np.bool(42))

多选题

列关于Matplotiib库说法错误的是(  CD  )

A.matplotlib.pyplot.figure(figsize=(2,2)):用于创建画布,并设置画布的大小为(2,2)

B.matplotlib.pyplot.plot(x,y,color-=‘r’,linewidth=5.O,linestyle=‘-’):用于绘制折线图,其中linewidth参数用于设置线的宽度

C.natplotlib.pyplot.plot(x,y.color=‘b’,linewidth=1.0,linestyle=‘-’):用于绘制折线图,其中参数”colar=b”是将线颜色设置为黑色

D.matplotlib.pyplot..subplot(2,2,1):用于将图表的整个绘图区域分为2行1列的区域,绘制的图表位于区域中的第2行第1列

下列属于数据清洗的操作是( ABCD  )。

A删除噪声数据

B.删除与挖掘主题无关的数据

C.处理缺失值

D.处理异常值

下列属于HDFS保正可靠性的措施的是( ABCD )。

A.冗余备份:每个文件存储成一系列数据块(Block),,为了提高容错率,文件的所有数据块都会有副本

B.副本存放:采用机架感知(Rak-aware)的策略来改进数据的可靠性、高可用和网络带宽的利用率

C.心跳检测:NameNode周期性地从集群中的每一个DataNode接受心跳包和块报告,若收到心跳包则说明该DataNode工作正常

D.数据完整性检测:HDFS客户端软件实现了对HDFS文件内容的校验和检查

下列属于Linux集群系统状态监控指标的是(ABCD  )。

A.load

B.CPU利用率

C.磁盘剩余空间

D.内存使用情况

下列关于sklear.model_selection模块中的train_test_split类的参数说法正确舶的是( ABD  )

A.test_size:测试集的大小

B.train_size:训练集的大小

C.andom_state:随机种子编号,默认为1

D.shuffle:是否在拆分前对数据进行洗牌

下列属于克隆CentOS6虚拟机之后需要修改的文件的是(  ABC )

A./etc/udev/rules.d/70-persistent-net.rules

B./etc/sysconfig/network-scriptd/ifcfg-eth0

C./etc/sysconfig/network

D./etc/sysconfig/network-scriptd/ifcfg

urllib库是Python内置的HTTP请求库,下列关于urllib库说法正确的是( AB )

A.urllib.request:请求模块

B.urllib.error:异常处理模块

C.urllib.parse:robots.txt解析模块

D.urllib.robotparser:URL解析模块

现有一个DataFrame格式的数据集data,“col_name”为data中的一个列名,下列关于填充缺失值代码的说去正确的是(  AD   )

A.data.fillna(0):用0对缺失值进行填充

B.data[‘ool_name’]fillna(data[‘col_name’].dropna().median(),inplace=True):用均值对缺失值进行填充

C.data[‘col_name’]fillna(method=’pad’):用缺失值的后一个数据对缺失值进行填充

D.data[‘col_name’].fillna(data[‘col_name’].dropna().mode()[0],inplace=True):用众数缺失值进行填充

下列属于HDFS针对数据流失可题提供的保护措施的是(  ABC  )。

A冗余备份

B.副本存放

C.宕机处理

D.固定副本个数

下列属于使用Pyecharts库可绘制的图表的是( ABCD   )。

A.日历图

B.漏斗图

C.仪表盘

D.关系图

聚焦网络爬虫又被称作主题网络爬虫,下列属于聚焦网络爬虫包括的爬行策略的是(  ABCDABC  )

A.基于内容评价的爬行策略

B.基于链接结构评价的爬行策略

C.基于增强学习的爬行策略

D.基于语境图的爬行策略

在pandas库中的DataFrame.duplicated()方法是针对DataFrame对像进行一个检查重复值操作,下列关于DataFrame.duplicated()方法中的参数说法正确的是(     ABC )

A.subset:列标签或标签序列,可选择仅考虑某些列来标识重复项,默认情况下使用所有列

B.keep=‘frst’:将重复项标记为"True",第一次出现的重复项除外

C.keep=‘last’:将重复项标记为"True"”,最后一次出现的重复项除外

D.kep=False:将所有重复项标记方"False"

urllib库是Python内置的HTTP请求库,下列关于urllib库说法正确的是(AB )

A.urllib.request:请求模块

B.urllib.error:异常处理模块

C.urllib.parse: robots.txt解析模块

D.urllib.robotparser:URL解析模块

在Numpy库中,下列关于切割2×2的二维数组arr的代码及其对应作用的说法正确的是(   ABC )

A.numpy.hsplit(arr,2):实现数组arr的横向分割

B.numpy.vsplit(arr,2):实现数组arr的纵向分割

C.numpy.split(arr,2,axis=1):实现数组arr的横向分割

D.numpy.split(arr,2,axis=2):实现数组arr的纵向分割

下列属于数据的质量相关因素的是(  ABCE   )

A数据的准确性

B.数据的完整性

C.数据的一致性

D.数据的可解释性

下列属于可以聚合数据的方法的是(  ABD  )。

A.DataFrame.agg()

B.DataFrame.apply()

C.DataFrame.pivot()

D.DataFrame.transform()

判断题

使用Python网络爬虫技术可以获取网页、图片和视频数据。(✔   )

在使用pandas.pivot_table()函数时,若不指定aggfunc参数使用的聚合函数,则会默认使用numpy.mean()函数进行聚合运算。( ✔   )

在Python环境中,Seaborn库、Matplotlib库和BeautifulSoup库均主要用于数据可视化分析。(  ✔  )

在NumPy库中,使用数组进行简单统计分折的排序方法有直接排序和间接排序。(  ✔  )

NumPy数组的水平分割采用vsplit函数,其等价于numpy.split(axis=1).( ✘ )

水球图是一种拟物化的图表,能够直观地表现出某个帽标指标的进度或是实际情况.在pyecharts库中,水球图可以设置波浪颜色,但波浪状态不可以设置为动态,只能是静态的.(  ✘ )

在pandas库中,使用pivot_table函数创建透视表时,分组键index有且只能有一个。(✘   )

在数据可视化报告中只需要包含图形,不需要对图形进行分析。(  ✘  )

在Linux系统中,为使其它用户可直接使用“cd”命令进入某目录,该目录需预先设置其它用户的读权限。(  ✘ )

离散属性的值只能是有限个。(   ✘)

K均值聚类是一种基于密度的聚类算法,聚类个数可由算法自动地确定。( ✘ )

在MySQL中,拥有最高权限的超级用户的用户名为Administrator。(✘   )

51.数据挖据的主要任务是从数据中发现潜在的规则,从而能更好地完成描述数据和预测数据等任务。(  ✔  )

在使用Requests库时,若想修改和添加Request库中的headers对像,则可以使用add_header()方法( ✔  )

53.在Python环境中,被三引号包围的一定是字符串(  ✔ )

54.在train_test_split函数中,test_size参数表示测试集的大小(  ✔  )

55.Hadoop框架是用Java实现的(  ✔ )

56.在服务端HTTP的响应状态码中,403表示服务器无法找到请求页面。( ✘  )

57.K-Means算法一般采用欧式距离作为样本间相似性的度量,即认为两个样本的距离城近,其相以性就越大(   ✔ )

58.Linux操作系统的管理员权限和普通用户权限相同( ✘  )

re.findall()函数的作用是在字符串中找到同正则表达式所匹配的所有子字符串,并返回一个列表,如果没有找到匹配的,则返回空列表。( ✔  )

数据可视化旨在借助图形化手段,清晰有效地传达出繁杂数据中的信息。( ✔)

如果缺失数据太多,可以建立模型,使用插补方式来填充数据。(   ✔  )

在Pandas库中,预处理缺失值时可以使用DataFrame.isnull()方法来判断数据框中的元素是否为缺失值.(   ✔  )

在Pandas库中DataFrame对象使用duplicated()方法可以删除数据中的重复项。(   ✘ )

Seaborn库比Matplotlib库功能更多,可以独立于Matplotlib库进行使用( ✘   )

网络爬虫是一个自动下载网页的计算机程序或者一个自动化脚本。(   ✔  )

在使用Seaborn库绘图时,可以输入代码”sns.set_style(‘white’)”将画布背景设置为白色.( ✔    )

67.在正则表达式语法中,“.”可以匹配任意字符。(✘   )

68.在MySQL中,拥有最高权限的超级用户的用户名为Administrator。(  ✘  )

实操部分

A卷:

因为NumPy数组在数值运算方面的效率优于Python提供的list,所以灵活掌握NumPy中数组的创建和基础的运算是有必要的.请使用NumPy库,编写Python代码完成下列操作!

启动Jupyter Notebook创建一个Notebook。

#(1)启动Jupyter Notebook创建一个Notebook。(2分)

# #(2)创建一个数值从o至1,间隔为e.01的数组arr1。(2分)

import numpy as np

arr1 = np.arange(0,1.01,0.01)

#(3)创建一个包含101个服从正态分布的随机数的数组arr2。(注意:数组arr2为一维数组)(2分)

arr2 = np.random.randn(101)

#(4)对数组arr1和数组arr2进行四则运算。(四则运算包括加、减、乘、除运算)(2分)

print('两数组之和为:\n ', arr1 + arr2)

print( '两数组之差为:\n ' , arr1 - arr2)

print( '两数组之积为: \n ', arr1 *arr2)

print( '两o数组之商为:\n ', arr1 / arr2)

#(5)对数组arr2进行简单的统计分析。(统计分析包括对数组进行升序排序、求和、求均值、求标准差和求最小值操作)。

print('排序后数组为: ', np.sort( arr2))

print('数组的和为: ', np.sum( arr2))

print('数组的均值为: ', np.mean( arr2))

print( '数组的标准差为: ', np.std(arr2))

print('数组的最小值为: ', np.min( arr2))

#(6)将数组arr1和数组arr2存储为当前工作路径下的一个二进制格式的文件arr.npz。(2分)

np.savez( ' arr.npz' , arr1, arr2)

 

2.请编写Python代码,对鸢尾花数据完成下列操作:

# (1)读取数据文件iris.csv,储存为数据框iris,并将数据框的列名称从左至右依次改修为"“sepal_length""sepal_width""petal_length""petal_width""class”。(3分)

import pandas as pd

iris = pd .read_csv( 'iris.csv ' , header=None)

iris.columns = [ 'sepal_length', 'sepal_width', 'petal_length' , 'petal_width ', 'class']

#(2)将数据框iris中“petal_length”列的第o行至第9行设置为缺失值。(注意:在Python中,索引为e开始。) (3分)

iris.loc[0: 9, 'petal_length' ] = None

#(3)将数据框iris中"petal_length”列的缺失值全部替换为1.0。(3分)

iris[ 'petal_length ' ].fillna(1.0,inplace=True)

#(4)册删除数据框iris中"class”列。(2分)

del iris[ 'class']

#(5)将数据框iris的前3行设置为缺失值。(2分)

iris.iloc[0: 3,: ] = None

#(6)册除数据框iris中存在缺失值的行。(2分)

iris.dropna(how= 'any ' , inplace=True)

#(7)重新设置数据框iris的行索引。(3分)

iris.reset_index(drop=True,inplace=True)

#(8)将数据框iris保存到当前工作路径下并命名为iris_new.csv。(2分)

iris.to_csv( 'iris_new.csv ')

3.葡萄酒是以葡萄为原料酿造的一种果酒。葡萄酒的品种很多,因葡萄的栽培、葡萄酒生产工艺条件的不同,产品风格各不相同。Wine数据集包含3种不同的葡萄酒的记录共178条。其中,每个特征对应葡萄酒的每种化学成分,并且都属于连续型数据,诵过对wine数据集的数据进行聚类,实现葡萄酒的类别划分.

请依据wine数据集,编写Python代码完成下列操作:

#(1)读取数据文件wine.csv,并储存为数据框wine。(1分)

import pandas as pd

wine = pd.read_csv( 'wine.csv ' , encoding='gb18030 ')

# (2)查询据框wine中是否存在缺失值。若存在缺失值,则需对其进行处理,反之,则无需处理。(2分)

print(wine.isnull().sum())# 由此可知无空值,无需处理

# (3)在wine数据集中,“Class”列为葡萄酒的类别,分别为1、2、3。绘制各类别的数量占比饼图。(4分)

wine_class = wine[ 'Class '].value_counts()#各类别数量

import matplotlib.pyplot as plt

plt.rcParams[ 'font.sans-serif' ] = 'SimHei' # 正常显示中文

plt.rcParams[ 'axes.unicode_minus '] = False# 正常显示符号

plt.pie(wine_class,labels=wine_class.index,autopct='%.2f%%')#小数点个数

plt.title( '各红酒类别占比图')

plt.show()

#(4)将数据框wine的数据和标签进行拆分,分别储存至数据框wine_data和数据框wine_label。(3分)

wine_data = wine.iloc[ : , 1: 14]#数据

wine_label = wine.iloc[ : , 0]#标签

#(5)将数据划分为训练集和测试集,训练集和测试集样本数比例为8:2,并将训练集数据、测试集数据、训练集标签和测试集标签分别储存至数据框wine_train、数据框wine_test、数据框wine_train_label和数据框wine_test_label。(3分)

from sklearn.model_selection import train_test_split

wine_train,wine_test,wine_train_label,wine_test_label = train_test_split\

(wine_data,wine_label,test_size=6.2,random_state=42)

#(6)构建聚类数目为3的K-Means模型,并命名为kmeans。(4分)

from sklearn.cluster import KMeans# 导入分类器库

kmeans = KMeans(n_clusters = 3,random_state=123).fit(wine_train)#构建并训练模型#(7)对比真实标签和聚类标签,求取FMI (FMI为聚类模型的评价指标),并输出其结果。(4分)

from sklearn.metrics import fowlkes_mallows_score

score = fowlkes_mallows_score(wine_train_label.tolist(),kmeans.labels_)

print( 'wine数据集的类中心为3时,其FMI的评价分值为:%f '%score)

#(8)当聚类数目为2~10类时,确定最优聚类数目。(4分)

for i in range(2,11):

kmeans = KMeans(n_clusters=i,random_state = 123).fit(wine_train)

score = fowlkes_mallows_score(wine_train_label,kmeans.labels_)

print('wine数据聚%d类FMI评价分值为:%f' % (i, score))

# 由此可知,最优聚类数目为2

B卷:

4.国际象棋棋盘是个正方形,由横纵向各8格、颜色一深一浅交错制排列的64个小方格组成,深色格为黑格,浅色格为白格,棋子就在这些格子中移动。接下来创建一个与国际象棋棋盘相似的8×8矩阵。

 

# (1)启动Jupyter Notebook创建一个Notebook。

# (2)创健一个8×8的全0数组,并储存至数组arr。

import numpy as np

arr =np.zeros((8,8))

# (3).将数组arr的奇数行奇数列和偶数行偶数列的元素设置为1。

for i in range(8):

for j in range(8):

if(i+j)%2 ==0:

arr[i][j] =1

# (4).将数组arr转换为矩阵matr1。

matr1 =np.matrix(arr)

# (5).将矩阵matr1转置为矩阵matr2,并判断矩阵mate1与矩阵matr2是否完全相同。

matr2=matr1.T

print((matr1 ==matr2).all())

# (6)将柜阵matr2存储为当前工作路径下的一个二进制格式的文件matr2.npy。

np.save('matr2.npy',matr2)

5.招聘数据探索与分析。

 

# (1)读取数据文件job_info.csv,并储存为数据框job_info.

import pandas as pd

import re

job_info =pd.read_csv('job_info.csv',encoding='GBK',header=None)

job_info.head()

# (2)将数据框job_info的列名称从左至右依次修改为”公司”“岗位”"工作地点”“工资”“发布日期”。

job_info.columns=['公司','岗位','工作地点','工资','发布日期']

job_info.head()

# (3)统计数据中需求最多的岗位招聘,并输出其结果。

print(job_info['岗位'].value_counts().index[0])

# (4).获取数据中9月3日发布的招聘信息,并输出其结果。

print(job_info[job_info['发布日期']=='09-03'])

# (5).获取工作地点在深圳的数据分析师招聘信息,并输出其结果。

job_info.loc[(job_info['工作地点'].apply(lambda x:'深圳' in x ))&(job_info['岗位']=='数据分析师'),:]

# (6)获取在“工资”列中,以“千/月”或“千/年”或“万/月”或“万/年”结尾的数据所在的行的数据,并储存至数据框ob_info_new。

job_info['工资'].str[-1].value_counts()

job_info['工资'].str[-3].value_counts()

index1=job_info['工资'].str[-1].apply(lambda x:x in ['月','年'])

index2=job_info['工资'].str[-3].apply(lambda x:x in ['千','万'])

job_info_new =job_info[index1 & index2]

job_info_new.shape

# (7)根据“工资”列,在数据框job_info_new中,新增最低工资和最高工资两列,列名分别设置为“最低工资(元/月)”和“最高工资(元/月)”。(

# 注意:这两列数据的单位是“元/月”,例如:若2-2.5万/月,则最低工资为20000,最高工资为25000.)

def get_max_min_value(x):

try:

if x[-3] == '万':

a = [float(i)* 10000 for i in re.findall('\c+\.?\c*',x)]

elif x[-3]== '千':

a = [float(i)* 1000 for i in re.findall('\c+\.?\c*',x)]

if x[-1] == '年':

a = [i/12 for i in a ]

except:

pass

return a

salary = job_info_new['工资'].apply(get_max_min_value)

job_info_new['最低工资'] = salary.str[0]

job_info_new['最高工资'] = salary.str[1]

6.sklean库不仅囊括了很多机器学习的算法,而但也自带了许多经典的数据集,鸢尾花数据集就是其中之一。鸢尾花数据集包含150个数据样本,分为3类,每类50个数据,每个数据包含4个特征,分别为SepalLength(花萼长度)、SepaIWidth(花萼宽度)、PetalLength(花瓣长度)、PetalWidth(花瓣宽度),通过这4个特征可划分鸢尾花的美的类别。

请根据鸢尾花数据,编写Python代码完成下列操作:

# (1)使用sklearn库加载鸢尾花数据和数据标签,将鸢尾花数据储存至数据框data,数据标签储存至数据框label。

from sklearn.datasets import load_iris

iris =load_iris()

data =iris['data']

label=iris['target']

# (2)统计数据中鸢尾花的类别数,并输出其结果。

print(len(set(label)))

# (3)以花萼长度为x轴,花萼宽度为y轴,绘制并展示散点图。

import matplotlib.pyplot as plt

plt.scatter(data[:,0],data[:,1])

plt.show()

# (4).将加载好的鸢尾花数据集划分成训练集和测试集两部分,训练集和测试集样本数比例为8:2,井将训练集数据、测试集数据

# .训练集标签和测试集标签分别储存至数据框x_train,数据框x_test,数据框y_train和数据框y_tes.

from sklearn.model_selection import train_test_split

x_train,x_test,y_train,y_test =train_test_split(data,label,test_size=0.2)

# (5)对数据框x_train和数据框x_test进行离差标准化,将标准化后的训练集和测试集数据分别储存至数据框scaler_x_train和数据

# 框scler_x_test(注意:测试集数据需使用和训练集数据相同的规职则进行标准化。)

from sklearn.preprocessing import MinMaxScaler

scaler =MinMaxScaler().fit(x_train)

scaler_x_train =scaler.transform(x_train)

scaler_x_test = scaler.transform(x_test)

# (6).构建决策树分类模型,命名为model,并进行模型训练.

from sklearn.tree import DecisionTreeClassifier

model=DecisionTreeClassifier()

model.fit(scaler_x_train,y_train)

# (7)对构建的模型进行性能评估,并输出其结果。(性能评估包括计算精确率、召回率和F1值等分类评估指标、)

from sklearn.metrics import classification_report

pre=model.predict(scaler_x_test)

res=classification_report(y_test,pre)

print(res)

C卷:

7.NumPy是用于数据科学计算的库。请使用NumPy库,编写Python代码求解各坐标点之间的距离。

# (1)启动Jupyter Notebook创建一个Notebook。

# (2).随机生成100个二维坐标点,并储存至数组arr1。

import numpy as np

x =np.linspace(0,10,100)

y =np.linspace(10,20,100)

arr1 =np.array((x,y)).T

# (3)计算各样本点之间的欧氏距离,并储存至数组arr2。

arr2 =[]

for i in range(len(arr1)):

for j in range(len(arr1)):

a = np.sqrt((arr1[i,0] - arr1[j,0]) ** 2 +(arr1[i,1])** 2)

arr2.append(a)

arr2 =np.array(arr2)

# (4)将数组arr2的形状转换为(100,100)。

arr2=arr2.reshape(100,100)

# (5)将数组arr2存储为当前工作路径下的一个二进制格式的文件arr2.npy。

np.save('arr2.npy',arr2)

8.用户用电量数据探索与分析。

data数据集为用户用电量数据,其中包含3个字段,具体特征说明如下:

特征名称

特征说明

CONS_NO表示用户编号1-200的200位电力用户

DATA_DATE表示时间,如2015/1/1表示2015年1月1日

KWE表示用户电量请根据用户用电量数据,编写Python代码完城下列操作:

# (1)读取数据文件data.csv,并储存为数据框data。

import pandas as pd

data = pd.read_csv('data.csv',parse_dates=['DATA_DATE'],encoding='gbk')

# 将数据框data转换为行索引为用户编号、列索引为时间、值为用户用电量的数据透视表data_new。

data_new = pd.pivot_table(data=data,values='KWH',index='CONS_NO',columns='DATA_DATE')

# (3)采用四分位法对透视表data_new中的异常数据进行识别并处理。

def clear_(x=None):

QL=x.quantile(0.25)

QU=x.quantile(0.75)

IQR = QU -QL

x[((x > QU +1.5 * IQR)| (x < QU -1.5 * IQR))] = None

return x

data_new.apply(clear_,axis=0)

# (4)构造持证1:统计每个用户用电数据的基本统计量(基本统计量包括最大值、最小值、均值、中位数),并将结果储存至数据框feature1。

feature1 = data_new.agg(['max','min','mean','median'],axis=1)

# (5)构造特证2:将每个用户用电数据按日差分后,求取基本统计量(基本统计量包括最大值、最小值、均值.中位数),将结果储存至数据框feature2。

feature2 =data_new.diff(axis=1).agg(['max','min','mean','median'],axis=1)

# 构造特征3:求每个用户的5%分位数,并将结果储存至数据框feature3.

feature3 =data_new.quantile(0.05 ,axis=1)

# (7)构造特征4:统计每个用户的日用电量在其最大值0.9倍以上的次数,并将结果储存至数据框feature3.

feature4 =data_new.apply(lambda x: sum(x> x.max() *0.9),axis=1)

# 合井特征1、特征2、特征3和特征4,并储存孕数据框feature4。

feature=pd.concat([feature1,feature2,feature3,feature4],axis=0)

# 将数据框feature保存到当前工作路径下并命名为feature.csv。

feature.to_csv('feature.csv')

9.泰坦尼克号是英国白星航运公司下辖的一搜奥林匹克级HYPERLINK游轮,1909年在哈兰德与沃尔夫造船厂动工建造.1911年下水,1912年完工试航

泰坦尼克号是当时世界上体积最庞大、内部设施最豪华的客运轮船,有“永l不沉没”的美誉。然而不幸的是,在它的处女航中,泰坦尼克号便遭厄运。1912年4月14日,泰坦尼克号与一座冰山相撞,造成右舷船艏至船中部破裂,五间水密舱进水.4月15日,泰坦尼克船体断裂成两截后沉入大西洋底3700米处。2224名船员及乘客中,1517人丧生。经过探究发现,似乎有些人比其他人更有生存的可能。接下来通过其生存与遇难的人的数据,预测乘客生还人数。

数据文件为titanic.csv,具体特征说明如下:

特征名称

特征说明

PassengerId乘客编号Survived是否生还。1为生还,0为未生还Pclass船舱号Sex性别Fare船票价格SibSp兄妹个数Parch父母子女个数请根据数据,编写Python代码完成下列要求:

# (1)读取数据文件titanic.csv,并储存为数据框titanic.

import numpy as np

import pandas as pd

titanic =pd.read_csv('titanic.csv')

# 计算乘客生还人数,并输出其结果.

titanic['Survived'].sum()

# 绘制男女乘客比例饼图,并添加标题”男女乘客比例饼图”。

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif']='SimHei'

plt.rcParams['axes.unicode_minus']=False

sex_=titanic['Sex'].value_counts()

plt.pie(sex_.values,labels=['Male','Female'],autopct='%1.1f%%',startangle=90)

plt.title('男女乘客比例饼图')

plt.show()

# 绘制船票价格直方图,并添加x轴标题”船票价格”和y轴标题”频次”。(注意:需先对”船票价格”进行升序排序)

df =titanic['fare'].sort_values(ascending=False)

plt.figure()

plt.hist(df,bins=(np.arange(0,550,10)))

plt.xlabel('船票价格')

plt.ylabel('频次')

plt.title('船票价格直方图')

plt.show()

# (5)在数据框titanic中,新增一列为家庭人数,并将列名设置为familysize"。

titanic['familysize']=titanic.loc[:,'SibSp']+titanic.loc[:,'Parch']+1

# (6)修改数据框titanic的”Sex”列,使用数值”1”和”0”分别代替”Sex”列中的”male”和”female”。

titanic['Sex']=titanic['Sex'].map({'female':0,'male':1}).astype(int)

# (7)根据“Pclass”、“Sex”和“familysize”这三个特征预测乘客是否生还。将数据集划分成训练集和测则试集两部分,训练集和测试集样本数比例为8:2

from sklearn.model_selection import train_test_split

x= titanic.loc[:,['Pclass','Sex','familysize']]

y= titanic.loc[:,['Survived']]

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=42)

# 构建KNN模型,命名为clf,并进行模型训练。

from sklearn  import neighbors

clf = neighbors.KNeighborsClassifier(n_neighbors=20)

clf.fit(x_train,y_train)

# 使用测试集数据进行模型预测,并将结果储存至数组pre

pre =clf.predict(x_test)

# 对构建的模型进行性能评估,并输出其结果。(性能评估包括计算精确率、召回率和F1值等分类评估指标。)

from sklearn.metrics import classification_report

res = classification_report(y_test,pre)

csv文件下载地址:

https://pan.baidu.com/s/1O4pln7Dq8JaDXDv-n-Y0ZQ?pwd=hhh3



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。