版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3-2-习题4及参考答案1.判断以下说法是否正确,并简要说明理由。(1)Python中的变量在使用前必须先声明数据类型。(2)print(3/2)和print(3//2)的输出结果相同。(3)字符串"123"可以通过int("123")直接转换为整数类型。参考答案:(1)错误。Python是动态类型语言,变量不需要事先声明数据类型,直接赋值即可(如x=10),类型由赋值时确定的值决定。(2)错误。/是除法运算符,结果为浮点数,3/2输出1.5;//是整除运算符,结果为整数,3//2输出1。两者输出结果不同。(3)正确。int("123")会把纯数字字符串转换为整数123。需注意字符串内容必须是合法的整数格式。2.简要阐述Python的优缺点?并列举Python和其它编程语言的差别?参考答案:Python的优点包含以下几点:语法简洁、易读:接近自然语言,代码量通常比C、Java少很多,学习门槛低,适合初学者。开发效率高:丰富的第三方库(NumPy、Pandas、Django等),很多功能“开箱即用”。解释型语言、跨平台:无需编译,代码在Windows、Linux、macOS上都能运行。动态类型、灵活:变量无需声明类型,写代码快捷。应用范围广:Web开发、数据分析、人工智能、自动化脚本、爬虫等。社区活跃:文档、教程和开源资源丰富。缺点包括:运行速度较慢:解释执行,性能远低于C/C++、Java,对计算密集任务不利。多线程受GIL限制:CPython的全局解释器锁使多线程无法真正并行利用多核(CPU密集场景需用多进程或C扩展)。内存占用较大:对象封装开销大,不适合内存极度受限的嵌入式环境。动态类型带来隐患:类型错误要到运行时才能发现,大型项目中需要靠类型标注和静态检查工具辅助。移动端支持弱:与其它编程语言的差别是:python是解释型语言,由解释器逐行(或编译成字节码后)解释执行。C语言是编译型语言,由源代码直接编译成机器码,生成可执行文件。Python有垃圾回收机制(引用计数+循环垃圾回收),完全自动化。Python是动态类型,无需声明类型,a=10即可,变量的类型可随时改变,类型检查在运行期进行。C是静态类型,声明变量时必须指定类型,如inta=10,类型检查在编译期进行。3.编写Python程序,计算并输出1到100之间所有能被3整除但不能被5整除的整数之和。要求使用循环结构和条件判断。参考答案:参考代码如下:total=0#用于保存累加结果foriinrange(1,101):#遍历1到100ifi%3==0andi%5!=0:#能被3整除且不能被5整除total+=i#累加满足条件的数也可以使用while循环,参考代码如下:total=0i=1whilei<=100:ifi%3==0andi%5!=0:total+=ii+=1print("和为:",total)print("1到100之间能被3整除但不能被5整除的整数之和为:",total)4.简述Python中return语句与print()函数的本质区别。若在自定义函数中省略return,函数默认返回什么值?参考答案:return语句是函数的出口,它的作用是结束函数的执行,并把一个具体的值交还给调用函数的地方。这个返回值可以被变量接收,也可以继续参与后续的运算或作为参数传递给其他函数。也就是说,return实现了函数与程序其他部分之间的数据传递。print()函数的作用仅仅是把内容输出到控制台(屏幕)上,供人查看。它只是让程序“打印”一段信息,打印出来的内容只是显示在屏幕上,程序本身无法拿到这个结果继续使用。print只是产生一个输出动作,并没有把数据交还给调用者。简单来说:return是把结果“交出去”给程序用,print是把内容“展示出来”给人看。前者是函数设计中的数据出口,后者只是一种输出手段。如果在自定义函数中省略了return语句(或者只写了return而没有跟任何值),那么函数执行完毕后会默认返回None。None是Python中的一个特殊常量,表示“空值”或“没有值”,它的类型是NoneType。5.NumPy是人工智能开发中最基础的科学计算库。请回答:(1)NumPy数组(ndarray)与Python原生列表在运算效率上有何主要差异?原因是什么?(2)编写代码,使用NumPy创建一个3×3的二维数组,元素为1到9的整数,并计算该数组每行的平均值。参考答案:(1)NumPy数组与Python原生列表在运算效率上的差异及原因效率差异:NumPy数组的运算效率远高于Python原生列表。当对大规模数据进行逐元素运算(如数组加法、乘法)时,NumPy的速度通常是原生列表的几十倍甚至上百倍。原因主要有以下几点:第一,底层实现语言不同。NumPy的核心计算部分是用C语言编写的,执行的是编译后的机器码;而原生列表的操作完全依赖Python解释器逐条解释执行字节码,速度天然就慢。第二,内存存储方式不同。NumPy数组在内存中是连续存储的一块区域,元素类型一致,存取时可以直接按偏移量计算地址,缓存命中率很高;而Python列表存储的是指向各个对象的指针,元素在内存中分散存放,CPU需要额外的时间去跳转寻址,缓存利用率低。第三,运算机制不同。NumPy的运算以整个数组为单位进行矢量化操作,底层由高度优化的循环实现,无需在Python层面逐个元素循环;而原生列表做同样的运算,往往需要在Python中写for循环,每次循环都伴随解释器的开销,效率自然低下。第四,类型检查开销不同。原生列表中的每个元素都是独立的Python对象,每次运算都要做动态类型判断;NumPy数组元素类型统一,类型检查只需做一次,节省了大量开销。(2)参考代码importnumpyasnp#创建3×3二维数组,元素为1到9arr=np.arange(1,10).reshape(3,3)#计算每行的平均值(axis=1表示按行计算)row_mean=arr.mean(axis=1)print("数组:")print(arr)print("每行的平均值:",row_mean)6.列举出你所指定的几种经典人工智能数据集,并说明其数据集的数据类型和样本总数,思考如何获取对应的数据集。参考答案:1)经典人工智能数据集介绍(1)MNIST手写数字数据集-数据类型:灰度图像数据,每张图片是28×28像素的单通道灰度图,内容为0~9的手写阿拉伯数字,属于图像分类任务。-样本总数:共70000张图片,其中训练集60000张,测试集10000张,共10个类别。-获取方式:可以通过MNIST官方网站(YannLeCun的个人主页)直接下载;更方便的是通过Python库获取,如tensorflow.keras.datasets.mnist.load_data()或torchvision.datasets.MNIST()一键下载;也可在Kaggle上搜索下载。(2)CIFAR-10图像分类数据集-数据类型:彩色图像数据,每张图片是32×32像素的RGB三通道彩色图,内容为飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船、卡车共10个类别的物体,属于图像分类任务。-样本总数:共60000张图片,其中训练集50000张,测试集10000张,每个类别6000张。-获取方式:由多伦多大学计算机科学系发布,可访问其官方主页下载;也可通过torchvision.datasets.CIFAR10()或tensorflow.keras.datasets.cifar10.load_data()自动下载;Kaggle上也有镜像资源。(3)ImageNet大规模图像数据集-数据类型:高分辨率彩色图像数据,涵盖超过2万个类别的真实世界物体,是图像分类、目标检测任务的经典基准数据集,每年举办的ILSVRC竞赛使其名声大噪。-样本总数:超过1400万张带标注的图像(不同年份版本数量略有差异)。-获取方式:因数据集体积巨大(超过100GB),需在ImageNet官方网站()注册账号并申请下载权限,审批通过后方可下载;也可通过学术机构提供的镜像站或Kaggle上的子集获取。(4)COCO目标检测与图像分割数据集-数据类型:彩色图像数据,标注内容包括目标检测框、实例分割掩码、图像描述(caption)等,属于多任务数据集,广泛用于目标检测、语义分割和图像描述生成任务。-样本总数:约33万张图像,超过200万个目标实例标注,80个物体类别。-获取方式:访问COCO数据集官方网站()即可免费下载图像和标注文件;也可通过torchvision.datasets.CocoDetection()或COCOAPI加载。(5)IMDB电影评论情感分析数据集-数据类型:文本数据,内容是电影评论的英文文本,每条评论被标记为正面(positive)或负面(negative)两种情感,属于文本分类任务。-样本总数:共50000条评论,训练集和测试集各25000条,正负样本各半。-获取方式:最初由斯坦福大学的AndrewMaas等人发布,可在其项目主页下载;也可通过tensorflow.keras.datasets.imdb.load_data()或torchtext.datasets.IMDB()直接加载;Kaggle上亦有备份。(6)Iris鸢尾花数据集-数据类型:结构化数值数据,每条样本包含花萼长度、花萼宽度、花瓣长度、花瓣宽度共4个数值特征,标签为山鸢尾、杂色鸢尾、维吉尼亚鸢尾3个类别,属于多分类任务。-样本总数:共150条样本,每个类别50条,无独立的测试集(通常自行划分)。-获取方式:这是机器学习领域最著名的入门数据集,可直接通过sklearn.datasets.load_iris()一行代码加载;也可在UCI机器学习库()下载CSV文件。(7)MovieLens电影评分数据集-数据类型:结构化表格数据,记录用户对电影的评分(1~5分),包括用户ID、电影ID、评分、时间戳等字段,广泛用于推荐系统算法的开发与评测。-样本总数:常见的MovieLens-100k版本包含10万条评分,由943名用户对1682部电影做出;还有1M、10M、20M等更大规模的版本。-获取方式:访问MovieLens官方网站()免费下载各个版本;surprise等推荐系统库也内置了该数据集的加载接口。(8)20Newsgroups新闻组文本数据集-数据类型:文本数据,收集了来自20个不同主题新闻组的英文文档,如体育、政治、科技、宗教等,属于文本分类任务,也常用于文本聚类和主题模型研究。-样本总数:约18000篇文档,分为训练集和测试集。-获取方式:可通过sklearn.datasets.fetch_20newsgroups()直接下载加载;也可在其项目主页获取原始数据文件。2)获取数据集的通用思路:总结起来,获取经典数据集的途径主要有四类:一是访问数据集的官方网站或发布机构页面直接下载原始文件;二是利用Python库内置的加载接口(如sklearn、torchvision、tensorflow.keras),这些库能自动下载并缓存到本地,是最便捷的方式;三是在Kaggle、UCI机器学习库等公开数据平台上搜索下载;四是对于超大规模数据集(如ImageNet),需要注册申请使用权限,获批后才能获取。在实际开发中,推荐优先使用框架自带的数据集接口,既省去手动处理的麻烦,也保证了数据格式与教程、示例代码的一致性。7.阅读以下代码,写出程序的运行结果。x=5y=2.5z=x/yprint(type(z),z)a="人工智能通识基础"b=2026print(a+str(b))参考答案:运行结果为:<class'float'>2.0人工智能通识基础20268.请列举出python典型的与人工智能相关的开发库,并给出其对应的使用场合。参考答案:Python人工智能典型开发库及其使用场合1)科学计算与数据处理基础库(1)NumPy(NumericalPython)人工智能开发中最底层的科学计算库,提供高效的N维数组对象(ndarray)和大量数学函数。几乎所有其他AI库都建立在NumPy之上。适用于数组运算、矩阵运算、线性代数、随机数生成等数值计算场景,是数据处理的基础工具。(2)Pandas数据处理与分析库,提供Series和DataFrame两种核心数据结构。适用于数据的读取、清洗、筛选、合并、分组统计等操作,在数据预处理阶段使用极为频繁,常用于处理CSV、Excel、数据库中的表格型数据。2)传统机器学习库(1)Scikit-learn(sklearn)最经典的传统机器学习库,提供分类、回归、聚类、降维、模型选择、特征工程等完整工具链,算法实现统一、接口规范(fit/predict模式)。适用于中小规模数据集上的传统机器学习任务,如逻辑回归、支持向量机、决策树、随机森林、K-means聚类、主成分分析等,是机器学习入门和快速建模的首选。(2)XGBoost/LightGBM高性能梯度提升树库,专门针对表格数据的竞赛级算法。适用于结构化数据的分类和回归任务,在工业界的风控、推荐、广告点击率预测等场景表现优异,多次在Kaggle数据竞赛中夺冠。3)深度学习框架(1)TensorFlow(含Keras)Google开源的深度学习框架,Keras已作为其高级API深度集成。适用于大规模深度学习模型的训练与部署,生态成熟,支持移动端(TensorFlowLite)和生产环境(TFServing),在工业界部署方面应用广泛。(2)PyTorchMeta(原Facebook)开源的深度学习框架,以其动态图机制和Python风格的设计深受研究者喜爱,目前是学术界最流行的框架。适用于深度学习研究和快速实验,在自然语言处理、计算机视觉等领域占据主导地位,也逐步扩展到工业部署(通过TorchScript、ONNX等)。(3)Keras高级神经网络API,语法简洁,上手门槛低。适用于快速搭建和验证神经网络原型,适合深度学习的初学者,现已作为TensorFlow的官方高级接口使用。4)计算机视觉库(1)OpenCV(cv2)开源计算机视觉库,提供上千种图像处理和视觉算法。适用于图像读写、滤波、边缘检测、特征提取、目标检测、视频处理等任务,在工
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 静脉输液护理风险管理
- 胃肿瘤病人围手术期护理
- 2026事业单位工勤技能-上海-上海不动产测绘员四级(中级工)历年参考题库含答案详解
- 2026中级银行从业资格(官方)-公司信贷2参考试题库历年考点答案详解
- 2026中级卫生职称-主治医师-口腔颌面外科学(中级)代码:355历年参考题库含答案详解
- 2026中国质量协会质量专业能力考试(六西格玛黑带)历年参考题库含答案详解
- 2026中医药适宜技术-养老护理员-养老护理员(中级)历年参考题库含答案详解
- 2026上海公务员考试(城市建设管理)历年参考题库含答案详解
- 2026农业机行业智能化农机装备研发及推广策略报告
- 2026人工智能技术应用领域市场现状与未来发展趋势研究报告
- 泌尿系感染护理查房
- 【新教材】统编版(2026)九年级上册道德与法治全册教案
- 2026年秋北师大版九年级上册数学《二次函数》公开课教案
- 2025年CCAA国家注册审核员考试(森林管理体系基础)测试题及答案
- 反比例函数的图象和性质课件 2026-2027学年人教版九年级数学上册
- 儿童前庭功能障碍康复治疗指南(2024)课件
- 2026年广东省广州市2026届高三下学期4月二模试题 物理 含答案新版
- 《2026年》医院药剂科药师高频面试题包含详细解答
- 2025-2026学年七年级英语上学期第一次月考 (北京专用)解析卷
- 《贵州省市政基础设施工程资料管理导则》
- 农产品电商平台供销合作协议
评论
0/150
提交评论