Python大数据分析 习题答案 吴道君 第1-6章习题_第1页
Python大数据分析 习题答案 吴道君 第1-6章习题_第2页
Python大数据分析 习题答案 吴道君 第1-6章习题_第3页
Python大数据分析 习题答案 吴道君 第1-6章习题_第4页
Python大数据分析 习题答案 吴道君 第1-6章习题_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

151第章数据分析概述numpy,选中搜索结果中的NumPyInstallPakageNumPy1-11所示。其他第三方库可以通过类似操作进行安装。151第章数据分析概述图1-11 PyCharm安装第三方库界面小小结本章首先介绍了数据分析的概念、流程以及应用,然后举例说明了数据分析的常用工具,并重点介绍了Python数据分析的第三方类库;最后介绍了Python数据分析环境搭建,主要是第三方库的安装,特别是JupyterNotebook开发工具的使用。习习题一、选择题1.数据分析第三方库包括( 。A.NumPy B.Matplotlib2.下列不是数据分析常用工具的是(。C.PandasD.PygameA.Python B.JavaC.MATLABD.R二、填空题1.数据分析流程包括 等环节。2.广义的数据分析包括 、 两部分。16三、简答题161.简述Python数据分析的优势。实验大数据分析2.思考Python数据分析环境搭建方法。实验大数据分析一、实验目的①掌握Python数据分析环境的搭建。②掌握JupyterNotebook的基本使用。二、实验内容①搭建Python数据分析环境。②使用JupyterNotebook开发工具。三、实验过程1.安装数据分析库使用如下命令安装数据分析需要的第三方Python库。pip3installnumpypip3installscipypip3installnumpypip3installscipypip3installmatplotlibpip3installsklearnpip3installjupyterpip3installxlrdpip3installopenpyxlpip3installseaborn打开命令窗口,在其中输入上述命令。以NumPy安装为例,如图1-12所示。注意:pip3命令需要计算机与互联网相连,因为需要下载。图1-12 安装NumPy操作2.安装JupyterNotebook开发工具在命令窗口中,输入pip3installjupyter命令后按【EnterJupyterNotebook,1-13所示。3.启动JupyterNotebook①在Windows中打开命令窗口(CMD,如图1-14所示。2nwalks=500nsteps=1000draws=np.random.randint(0,2,size=(nwalks,nsteps))steps=np.where(draws>0,1,-1)walks=steps.cumsum(1)print(walks)2nwalks=500nsteps=1000draws=np.random.randint(0,2,size=(nwalks,nsteps))steps=np.where(draws>0,1,-1)walks=steps.cumsum(1)print(walks)第章数值计算输出结果:章数值计算[[-1-2-3...525150][-10 1...-22-23-24][-10-1...-16-17-18]...[10-1...-36-35-36][-10-1... 0-1 0][12 1...444342]]小小结本章介绍了NumPy数组的创建、对象属性和数据类型,数组形状修改、翻转、连接、分割等操作,介绍了数组的索引和切片、数组的运算以及线性代数求解,最后介绍了数组的存取。习题习题一、单选题1.下列不是创建NumPy数组的函数是( 。A.array() B.ones_like() C.eye() D.reshape()2.下列能够产生正态分布样本值的函数是( 。A.rand() B.randint() C.randn() D.seed()3.求数组转置除了使用transpose()函数外,还可以使用数据的( )属性。A.T B.shape C.size D.dtype二、填空题1.分割数组的函数有 、 、 。2.求数组的标准差函数是 ,方差函数是 。3.求矩阵特征值和特征向量的函数是 、 。三、简答题1.简述函数unique()的参数。2.简述数组可以广播的条件。3.简述sort()函数的排序算法。四、读程序1.以下程序的执行结果是 。importnumpyasnpa=np.arange(12).reshape(2,6)importnumpyasnpa=np.arange(12).reshape(2,6)c=a.ravel()c[0]=100c=a.ravel()c[0]=100print(a)58大数据分析2.以下程序的执行结果是 。58大数据分析importnumpyasnpa=np.arange(9)b=np.split(a,3)print(b)importnumpyasnpa=np.arange(9)b=np.split(a,3)print(b)importnumpyasnpa=np.array([[1,2,3],[4,5,6]])print(np.append(a,[7,8,9]))print(np.append(a,[[7,8,9]],axis=0))print(np.append(a,[[5,5,5],[7,8,9]],axis=1))3.以下程序的执行结果importnumpyasnpa=np.array([[1,2,3],[4,5,6]])print(np.append(a,[7,8,9]))print(np.append(a,[[7,8,9]],axis=0))print(np.append(a,[[5,5,5],[7,8,9]],axis=1))4.以下程序的执行结果是 。importnumpyasnpa=np.array([5,2,6,2,7,5,6,8,2,9])importnumpyasnpa=np.array([5,2,6,2,7,5,6,8,2,9])u=np.unique(a)u,indices=np.unique(a,return_index=True)print(indices)u,indices=np.unique(a,return_inverse=True)print(u)print(indices)print(u[indices])u,indices=np.unique(a,return_counts=True)print(u)print(indices)5.以下程序的执行结果是 。importnumpyasnpa=np.array([10,100,1000])print(np.power(a,2))b=np.array([1,2,3])print(np.power(a,b))importnumpyasnpa=np.array([10,100,1000])print(np.power(a,2))b=np.array([1,2,3])print(np.power(a,b))6.以下程序的执行结果是 。importnumpyasnpa=np.array([[3,7],[9,1]])print(np.sort(a))print(np.sort(a,axis=0))importnumpyasnpa=np.array([[3,7],[9,1]])print(np.sort(a))print(np.sort(a,axis=0))dt=np.dtype([('name','S10'),('age',int)])print(np.sort(a,order='name'))7.以下程序的执行结果是 。importnumpyasnpx=np.arange(100).reshape(10,10)condition=np.mod(x,2)==0print(np.extract(condition,x))importnumpyasnpx=np.arange(100).reshape(10,10)condition=np.mod(x,2)==0print(np.extract(condition,x))2五、计算题 592第1.计算下列行列式。第章101章35 004 15202100080050

数值计算310数值计算00(1)

(2)A2 11 3

142 23.求下列线性方程组。41

2

13(1)设A22 1,B2 2,求X使AX=B。 311 31 x1x2x3x4x57(2)xx2xx3x231 2 3 4 52xx2x6x23 2 3 4 54.求矩阵的特征值和特征向量。

21A21 实实验一、实验目的①掌握NumPy数组的创建、操作。②掌握NumPy数组的索引和切片。③掌握NumPy数组的运算。④掌握NumPy数组的线性代数运算。二、实验内容①创建矩阵。②索引与切片。③数组操作。④数组运算。⑤线性代数运算。三、实验过程①启动JupyterNotebook。②创建Notebook的Python脚本文件。96#填充颜色#绘制轮廓线#显示等高线的标签#x轴刻度#y轴刻度#X96#填充颜色#绘制轮廓线#显示等高线的标签#x轴刻度#y轴刻度#XY映射函数Z=(1-X/2+X**5+Y**3)*np.exp(-X**2-Y**2)#绘制图形plt.contourf(X,Y,Z,10,cmap='hot',alpha=0.75)C=plt.contour(X,Y,Z,10,colors='k')plt.clabel(C,inline=True,fontsize=8)plt.xticks(())plt.yticks(())plt.show()大数据分析图3-29 二维等高线小小结本章介绍了利用Matplotlib绘制常用数据图表,如折线图、散点图、柱状图、条形图、饼图、直方图和箱形图;还介绍了使用Matplotlib设置坐标系,比如坐标网格、坐标轴和分区;最后介绍了Matplotlib三维图像的绘制。习题除了Matplotlib外,还有一些其他可视化工具,比如Seaborn、Pyecharts和pygal等,有习题一、选择题1.折线图中设置线宽的函数是( 。A.color() B.linestyle() C.linewidth() D.marker()2.显示一个数据系列中各项的大小与各项总和的比例的图形是( 。A.饼图 B.直方图 C.柱形图 D.散点图3.图例位置upperleft对应的编号是( 。A.0 B.1 C.2 D.33二、填空题 973第1.绘制饼图的函数是 。第章2.pyplot设置x坐标取值范围的函数是 。3.pyplot使用rcParams设置字体的属性是 。三、简答题章1.简述创建子图的函数。2.简述Matplotlib能够绘制哪些二维图形?绘制这些二维图形时用到了哪些函数?实验数据可视化3实验数据可视化一、实验目的①掌握Matplotlib图形的绘制,包括折线图、散点图、柱形图、条形图、饼图、直方图和箱线图。②掌握绘图中的设置,包括图例设置、坐标网格设置、画布设置、样式设置、创建子图、子图坐标系设置。二、实验要求2023年二手房交易信息表(表格类型为csv3-19。根据交易信息表,通过NumPy3-303-32所示图形绘制。①绘制各区二手房均价柱形图。②绘制各区房子数量占比饼图。③在一个画布中绘制全市二手房装修程度柱形图和占比饼图。表3-19某市二手房交易信息小区名字总价/万元户型建筑面积/m单价/(元/m)朝向楼层装修区域龙首壹号院2904室2厅3卫28010357南北中层豪华装修新城华润橡府4002室2厅2卫20919139南北低层毛坯新城华润凯旋门1202室2厅1卫9113187南北低层精装修高新金桥花园1152室2厅1卫128.638940南北中层精装修新城金穗花园1193室2厅2卫130.459122南北高层豪华装修英西中天北湾新城892室2厅1卫8910000南北低层毛坯高新桦林苑99.83室2厅1卫1436979南北中层毛坯英西嘉柏湾321室1厅1卫43.37390南高层精装修经开三、实验过程1.实验实现代码请参考素材代码:教材代码-第3章Matplotlib数据可视化-3.6课后实验。2.实验绘制图形结果如图3-30至图3-32所示。4小结4小结第章本章学习了Pandas的常用数据结构:Series和DataFrameDataFrame数据对象的创建和使用是本章的重点,包括DataFrame的基本功能,读取外部数据生成DataFrameDataFrame行列操作、重建索引、更换索引和层次化索引以及DataFrame的数据运算和统计函数,第章习题数据分析DataFrameDataFrame数据制作透视表和交叉表。本章内容较多,知识点琐碎,需要多加练习才能较好地掌握。习题数据分析一、选择题1.函数应用与映射函数作用于DataFrame的列的是( 。A.pipe() B.apply() C.applymap() D.map()2.重建索引函数是( 。A.rename() B.set_index() C.reset_index() D.reindex()3.求协方差的函数是( 。A.pct_change() B.corr() C.rank() D.cov()二、填空题1.DataFrame数据对象的head()函数的作用是 。2.read_csv()函数的参数sep的作用是指定 。3.DataFrame数据对象选取行的函数主要是loc()函数和 函数。4.透视表和交叉表的函数是 和 。三、简答题1.Pandas有哪些数据结构?2.Pandas的统计函数有哪些?实验3实验一、实验目的①掌握DataFrame数据结构的创建和基本使用方法。②掌握外部数据的读取方法。③掌握DataFrame的高级索引函数。④掌握Pandas的数据运算,包括算术运算、函数映射、排序、迭代等运算,以及统计函数。⑤掌握DataFrame的分组与聚合。⑥掌握透视表、交叉表方法的使用。df=pd.DataFrame(data)sampler=np.random.permutation(len(df))print(df)df=pd.DataFrame(data)sampler=np.random.permutation(len(df))print(df)print(df.sample(n=3))print(df.sample(frac=0.5))01234001234012340012341567892101112131431516171819420212223245252627282963031323334735363738398404142434494546474849012341567892101112131400123401234001234525262728291567892101112131484041424344170大数据分析小小结本章讨论了缺失值、重复值和异常值的检测和处理;数据的合并连接与重塑;数据变换的方法,包括虚拟变量、函数变换、连续属性离散化、数据规范化和随机采样等。习题习题一、选择题1.删除重复值的函数是( 。A.drop_duplicates() B.duplicated() C.isnull() D.notnull()2.下列不是数据规范化方法的是( 。A.离差规范化 B.标准差规范化C.小数定标规范化 D.平均值规范化3.数据重塑方法有函数( 。A.dropna() B.fillna() C.stack() D.concat()二、填空题1.数据清洗解决数据问题有 、 、 。17152.虚拟变量的函数名称是 1715第3.插值法包括 、 、 。第4.merge()函数的参数how取值有 、 、 和 。章三、简答题章数据预处理1.简述缺失值处理方法。数据预处理2.简述数据合并连接与重塑的函数。实验3实验一、实验目的①掌握重复值、缺失值和异常值的检测与处理方法,能够对大量数据进行清洗。②掌握数据的合并、连接和重塑,能够根据计算、分析需要对数据结构进行处理。③掌握常用数据变换的方法,能够根据分析需要和数据特点对数据进行变换。二、实验内容①数据清洗:重复值清洗、缺失值清洗、检测异常值。②数据合并连接和重塑。③数据变换:虚拟变量、连续属性离散化、规范化。④数据的随机排列和随机采样。三、实验过程1.重复值清洗(1)检测重复值importpandasaspddata={'state':[1,1,2,2],'pop':['a','b','c','d']}df=pd.DataFrame(data)IsDuplicated=df.duplicated()importpandasaspddata={'state':[1,1,2,2],'pop':['a','b','c','d']}df=pd.DataFrame(data)IsDuplicated=df.duplicated()print(df)print('是否重复:')print(IsDuplicated)print('state重复:')print(df.drop_duplicates(['state']))IsDuplicated=df.duplicated(['state'])print('删除后是否重复:')print(IsDuplicated)print(df.drop_duplicates(['state']))(2)删除重复值importpandasaspdimportnumpyasnpimportpandasaspdimportnumpyasnpdf=pd.DataFrame({'key1':['a','a','b','b','a','a'],plt.subplot(313)plt.subplot(313)plt.scatter(X[:,0],X[:,1],c=y_pred)plt.show()210大数据分析输出图形如图6-13所示。210大数据分析图6-13 DBSCAN输出图形小小结习题本章介绍了机器学习的有关概念,如Sklearn的数据集,模型选择、训练、评价、保存等;习题一、选择题1.监督学习包括( 。A.降维 B.回归 C.分类 D.聚类2.鸢尾花数据集属于( 。A.load数据集 B.make数据集C.可在线下载的数据集 D.svmlight/libsvm格式的数据集数据集拆分为训练集和测试集的函数是( 。A.cross_val_score() B.PCA()C.score() D.train_test_split()支持向量机用来回归分析的算法是( )。A.SVM B.SVC C.SVR D.SVN二、填空题机器学习可以分为监督学习和 。数据预处理的模块是 。实验2116第章函数sklearn.decomposition.PCA(n_components='mle',whiten=False,svd_solver='auto')中参数n_components取值'mle'用MLE算法根据特征的 选择一定数量的主成分特征来降实验2116第章一、实验目的机器学习①掌握降维、回归、分类和聚类算法。机器学习②掌握Sklearn的机器学习过程及其数据预处理、模型选择、训练和评价。二、实验内容①降维。②回归。③分类。④聚类。⑤模型评估。三、实验过程1.降维程序代码(一):fromsklearn.datasetsimportloadfromsklearn.datasetsimportload_winefromsklearnimportdecompositionimportmatplotlib.pyplotaspltwine=load_wine()pca=decomposition.PCA(n_components=2)pca.fit(wine.data)reduced_X=pca.transform(wine.data)print(wine.data.shape)print(reduced_X.shape)程序代码(二):importnumpyasnpimportnumpyasnpimportmatplotlib.pyplotaspltfromsklearnimportdecompositionfrommpl_toolkits.mplot3dimportAxes3D%matplotlibinlinefromsklearn.datasets.samples_generatorimportmake_blobsX,y=make_blobs(n_samples=10000,n_features=3,centers=[[3,3,3],[0,0,0],[1,1,1],[2,2,2]],cluster_std=[0.2,0.1,0.2,0.2],random_state=9)fig=plt.figure()ax=Axes3D(fig,rect=[0,0,1,1],elev=30,azim=20)plt.scatter(X[:,0],X[:,1],X[:,2],marker='o')pca=decomposition.PCA(n_components=2)pca.fit(X)X_new=pca.transform(X)plt.figure()plt.figure()plt.scatter(X_new[:,0],X_new[:,1],marker='o')plt.show()fromsklearn.datasets.samples_generatorimportmake_classificationfromsklearn.discriminant_analysisimportLinearDiscriminantAnalysisfromsklearnimportdecompositionimportmatplotlib.pyplotaspltfromsklearn.datasets.samples_generatorimportmake_classificationfromsklearn.discriminant_analysisimportLinearDiscriminantAnalysisfromsklearnimportdecompositionimportmatplotlib.pyplotaspltn_informative=10,random_state=1,n_clusters_per_class=2)print('原始维度:',X.shape)pca=decomposition.PCA(n_components=2)pca.fit(X)reduced_X=pca.transform(X)print('降维后维度:',reduced_X.shape)plt.scatter(reduced_X[:,0],reduced_X[:,1])lda=LinearDiscriminantAnalysis(n_components=2)reduced_X2=lda.fit_transform(X,labels)print(reduced_X2.shape)plt.scatter(reduced_X2[:,0],reduced_X2[:,1])212大数据分析2.回归%matplotlibinline%matplotlibinlinefromsklearnimportdatasetsfromsklearn.linear_modelimportLinearRegression,LogisticRegressionfromsklearn.model_selectionimporttrain_test_splitimportmatplotlib.pyplotaspltboston=datasets.load_boston()linear=LinearRegression()logistic=LinearRegression();linear.fit(X_train,y_train)pred_linear=linear.predict(X_test)logistic.fit(X_train,y_train)pred_logistic=logistic.predict(X_test)plt.plot(range(y_test.shape[0]),y_test,color='red')plt.figure()plt.plot(range(y_test.shape[0]),y_test,color='red')3.分类程序代码(一):%matplotlibinline%matplotlibinlinefromsklearnimportdatasetsfromsklearnimportnaive_bayesfromsklearnimportpreprocessing6fromsklearn.model_selectionimporttrain_6fromsklearn.model_selectionimporttrain_test_splitcancer=datasets.load_breast_cancer()scaler=preprocessing.MinMaxScaler(feature_range=(0,1))scaler.fit(cancer.data)X=scaler.transform(cancer.data)X_train,X_test,y_train,y_test=train_test_split(X,cancer.target)gaussian=naive_bayes.GaussianNB()gaussian.fit(X_train,y_train)predict_y=gaussian.predict(X_test)print(gaussian.score(X_test,y_test))print(y_test,'\n',predict_y)第章机器学习程序代码(二):机器学习%matplotlibinline%matplotlibinlinefromsklearnimportdatasetsfromsklearnimporttreefromsklearnimportpreprocessingfromsklearn.model_selectionimporttrain_test_splitcancer=datasets.load_breast_cancer()scaler=preprocessing.MinMaxScaler(feature_range=(0,1))scaler.fit(cancer.data)X=scaler.transform(cancer.data)X_train,X_test,y_train,y_test=train_test_split(X,cancer.target)dtc=tree.DecisionTreeClassifier()dtc.fit(X_train,y_train)predict_y=dtc.predict(X_test)print(dtc.score(X_test,y_test))i=0whilei<len(predict_y):if(predict_y[i]!=y_test[i]):print('第',i,'个值预测错误')i=i+14.聚类程序代码(一):#k-meansIrisimportpandasas#k-meansIrisimportpandasaspdimportmatplotlib.pyplotaspltfromsklearn.datasetsimportload_irisfromsklearn.preprocessingimportMinMaxScalerfromsklearn.clusterimportKMeansfromsklearn.manifoldimportTSNE%matplotlibinlineiris=load_iris()iris_data=iris['data']iris_target=iris['target']iris_names=iris['feature_names']scale=MinMaxScaler().fit(iris_data)214iris_dataScale=scale.transform(iris_214iris_dataScale=scale.transform(iris_data)kmeans=KMeans(n_clusters=3,random_state=123).fit(iris_dataScale)print('构建的K-means模型为:\n',kmeans)result=kmeans.predict([[1.5,1.5,1.5,1.5]])print('1.5的鸢尾花预测类别为:',result[0])df=pd.DataFrame(tsne.embedding_)df['labels']=kmeans.labels_df1=df[df['labels']==0]df2=df[df['labels']==1]df3=df[df['labels']==2]plt.plot(df1[0],df1[1],'bo',df2[0],df2[1],'r*',df3[0],df3[1],'gD')plt.show()大数据分析importnumpyasnpimportnumpyasnpfromsklearnimportdatasetsfromsklearn.model_selectionimportKFoldfromsklearn.model_selectionimporttrain_test_splitfromsklearn.neighborsimportKNeighborsClassifieriris=datasets.load_iris()iris_X=iris.datairis_Y=iris.targetknn=KNeighborsClassifier()knn.fit(X_train,Y_train)print(Y_test)y_predict=knn.predict(X_test)count=0fory1,y2inzip(y_predict,Y_test):if(y1==y2):count=count+1print(count/len(y_predict))程序代码(三):%matplotlibinlineimportpandasaspd%matplotlibinlineimportpandasaspdfromsklearn.manifoldimportTSNEimportmatplotlib.pyplotaspltimportsklearn.datasetsasdatasetsiris=datasets.load_iris

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论