工业AI2025年编程能力冲刺试卷_第1页
工业AI2025年编程能力冲刺试卷_第2页
工业AI2025年编程能力冲刺试卷_第3页
工业AI2025年编程能力冲刺试卷_第4页
工业AI2025年编程能力冲刺试卷_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

工业AI2025年编程能力冲刺试卷考试时间:______分钟总分:______分姓名:______一、1.在Python中,用于定义类别的内置数据类型是?2.下列哪个不是常用的Python科学计算库?3.读取CSV文件常用的Python库是?4.在NumPy中,表示向量的维度标签是?5.如果一个列表`data=[10,20,30,40,50]`,执行`data[1:4]`的结果是?6.在Pandas中,用于创建数据框(DataFrame)的函数是?7.如何检查PandasSeries中缺失值(NaN)的数量?8.在Scikit-learn中,用于划分数据集为训练集和测试集的函数是?9.逻辑运算符`and`、`or`、`not`在Python中的优先级从高到低排列顺序是?10.Python中用于打开文件进行读取操作的内置函数是?二、11.阅读以下Python代码,写出其执行后的输出结果。```pythonmy_list=[1,2,3,4,5]foriinrange(len(my_list)):my_list[i]=my_list[i]*2print(my_list)```12.阅读以下Python代码,写出其执行后的输出结果。```pythondeffactorial(n):ifn==0:return1else:returnn*factorial(n-1)print(factorial(3))```13.阅读以下Python代码,写出其执行后的输出结果。```pythonimportnumpyasnparr=np.array([1,2,3,4,5])print(arr.mean())```14.阅读以下Python代码,写出其执行后的输出结果。```pythonimportpandasaspddata={'Name':['Alice','Bob','Charlie'],'Age':[25,30,35]}df=pd.DataFrame(data)print(df.iloc[1])```15.阅读以下Python代码,写出其执行后的输出结果。```pythondefgreet(name="Guest"):print("Hello,",name)greet("Alice")greet()```三、16.编写Python代码,创建一个包含10个随机整数的列表,这些整数的范围在1到100之间(包括1和100)。然后使用列表推导式,将列表中所有大于50的整数乘以2,并输出最终列表。17.假设有一个PandasSeries对象`s`,包含如下数据:`[10,20,None,30,40,None,50]`。请编写Python代码,将Series中所有的`None`值替换为数字0,并输出处理后的Series。18.编写Python代码,使用NumPy创建一个3x3的二维数组(矩阵),其元素为从0到8的整数,并按列优先(Fortran顺序)排列。然后,计算该矩阵的所有元素的平均值,并将结果保留两位小数输出。19.使用Scikit-learn,编写Python代码实现以下功能:从一个假设的100x2的数据集`X`(这里用代码生成模拟数据)中,提取前20个样本作为训练数据,后80个样本作为测试数据。假设对应的标签为`y`(也用代码生成模拟数据),同样前20个为训练标签,后80个为测试标签。使用`train_test_split`函数完成划分,并打印出训练集和测试集的样本数量。20.编写Python代码,定义一个函数`calculate_stats`,该函数接收一个列表作为输入参数。函数需要计算该列表的元素个数(长度)、最大值、最小值以及平均值。最后,函数返回一个包含这四个统计结果的元组(顺序为:长度,最大值,最小值,平均值)。例如,调用`calculate_stats([1,2,3,4,5])`应该返回`(5,5,1,3.0)`。四、21.假设你要编写一个Python脚本来监控一个工业设备的温度。该设备每分钟通过串口发送一次温度数据(假设数据为浮点数,例如`23.5`),数据之间用逗号分隔。请编写代码,模拟接收包含3个温度值的字符串数据(例如`"23.5,24.1,23.8"`),将这些字符串分割并转换成浮点数列表,然后计算这些温度值的平均值,并将结果打印出来。最后,请添加必要的注释说明代码的功能。22.编写Python代码,使用Pandas读取一个名为`employee.csv`的文件(假设该文件存在,包含列`Name,Age,Department`)。然后,筛选出所有部门为"Engineering"的员工记录,并将这些记录按照年龄(Age)从大到小排序。最后,输出排序后的结果。23.使用NumPy和Pandas,编写代码完成以下任务:创建一个形状为(5,5)的随机整数数组,值范围在1到100之间。将这个数组的对角线元素(即索引为(0,0),(1,1),(2,2),(3,3),(4,4)的元素)设置为0。然后,将这个修改后的数组转换成一个PandasDataFrame,列名为"A","B","C","D","E"。24.编写Python代码,使用Scikit-learn中的`LogisticRegression`模型。首先,使用代码生成一个简单的线性可分的数据集(例如使用`make_classification`),包含100个样本,2个特征。然后,使用生成的数据集,创建模型实例,并使用`fit`方法训练模型。最后,打印出训练完成后模型的系数(coefficients)和截距(intercept)。25.编写一个Python函数`process_sensor_data`,该函数模拟处理来自工业传感器的数据。函数接收一个包含传感器读数的列表(可能包含整数和浮点数,也可能包含`None`表示读数无效)。函数需要执行以下操作:a.移除列表中的所有`None`值。b.将列表中所有小于0的读数视为无效,并用`None`替换。c.计算剩余有效读数的总和。d.如果有效读数数量大于等于2,计算有效读数的平均值;否则,返回`None`表示无法计算平均值。函数最终返回一个包含两个元素的元组:第一个元素是处理后的读数列表(去除了`None`和负值),第二个元素是读数总和或平均值(根据情况)。试卷答案一、1.`enum`2.`Tkinter`(或其他非科学计算库,如GUI库)3.`pandas`4.`axis`5.`[20,30,40]`6.`pd.DataFrame`7.`s.isnull().sum()`或`s.isna().sum()`8.`train_test_split`9.`not`,`and`,`or`10.`open`二、11.`[2,4,6,8,10]`*解析:`range(len(my_list))`生成索引序列`[0,1,2,3,4]`。循环遍历索引,将`my_list[i]`的值更新为其自身乘以2。最终列表变为`[1*2,2*2,3*2,4*2,5*2]`。12.`6`*解析:定义递归函数`factorial`。`factorial(3)`计算`3*factorial(2)`,`factorial(2)`计算`2*factorial(1)`,`factorial(1)`计算`1*factorial(0)`。`factorial(0)`返回`1`。所以`factorial(1)=1*1=1`,`factorial(2)=2*1=2`,`factorial(3)=3*2=6`。13.`3.0`*解析:创建一个NumPy数组`arr`。`arr.mean()`计算数组所有元素的平均值`(1+2+3+4+5)/5=15/5=3.0`。14.`Age35\nNameCharlie\ndtype:object`*解析:创建一个PandasDataFrame`df`。`df.iloc[1]`选取第1行(索引为1,因为索引从0开始),输出该行的数据,按列顺序显示。15.`Hello,AliceHello,Guest`*解析:定义函数`greet`,带有一个默认参数`name="Guest"`。`greet("Alice")`调用时传入实参"Alice",输出"Hello,Alice"。`greet()`调用时不传入参数,使用默认值"Guest",输出"Hello,Guest"。三、16.```pythonimportrandomdata=[random.randint(1,100)for_inrange(10)]result=[x*2ifx>50elsexforxindata]print(result)```*解析:首先导入`random`模块。使用列表推导式生成包含10个随机整数的列表`data`,整数范围1到100。然后,使用嵌套的列表推导式生成新列表`result`,遍历`data`中的每个元素`x`,如果`x>50`,则将其乘以2加入`result`;否则,将`x`本身加入`result`。最后打印`result`。17.```pythonimportpandasaspds=pd.Series([10,20,None,30,40,None,50])s_filled=s.fillna(0)print(s_filled)```*解析:导入`pandas`。创建一个包含`None`的PandasSeries`s`。使用`fillna(0)`方法将Series中所有的`None`值替换为0,结果存储在`s_filled`中。最后打印`s_filled`。18.```pythonimportnumpyasnparr=np.arange(0,9).reshape(3,3)#[012;345;678]arr_col_major=arr.copy(order='F')#CopyarraywithFortranorderarr_col_major.flat[::4]=0#Setdiagonalelements(0,0),(1,1),(2,2)to0mean_value=arr_col_major.mean()print(arr_col_major)print(f"{mean_value:.2f}")```*解析:导入`numpy`。使用`arange(0,9)`生成一个0到8的数组,然后用`reshape(3,3)`将其变为3x3矩阵。创建该矩阵的副本`arr_col_major`并指定`order='F'`(Fortran顺序,即按列优先存储)。按列优先顺序,对角线元素索引为`flat[0],flat[4],flat[8]`。使用切片`::4`遍历对角线索引,将其值设置为0。使用`mean()`计算修改后矩阵的平均值,`mean_value`保留两位小数。打印矩阵和平均值。19.```pythonfromsklearn.model_selectionimporttrain_test_splitimportnumpyasnp#假设需要生成模拟数据#假设模拟数据X=np.random.rand(100,2)y=np.random.randint(0,2,100)#划分数据集X_train,X_test,y_train,y_test=train_test_split(X,y,train_size=20,test_size=80)print(f"Trainsamples:{X_train.shape[0]}")print(f"Testsamples:{X_test.shape[0]}")```*解析:导入`train_test_split`函数和`numpy`。生成模拟特征数据`X`(100x2)和模拟标签数据`y`(100个0或1)。调用`train_test_split`函数,指定`X`,`y`,`train_size=20`表示取前20个样本作训练集,`test_size=80`表示取后80个样本作测试集。函数返回四个值,分别赋给`X_train`,`X_test`,`y_train`,`y_test`。打印训练集和测试集的样本数量。20.```pythondefcalculate_stats(lst):n=len(lst)ifn==0:max_val=Nonemin_val=Nonemean_val=Noneelse:max_val=max(lst)min_val=min(lst)mean_val=sum(lst)/nreturn(n,max_val,min_val,mean_val)#示例调用result=calculate_stats([1,2,3,4,5])print(result)#输出:(5,5,1,3.0)```*解析:定义函数`calculate_stats`接收列表`lst`。计算列表长度`n`。判断列表是否为空,如果为空,则所有统计值设为`None`。如果不为空,使用`max()`,`min()`,和`sum()/len()`分别计算最大值、最小值和平均值`mean_val`。函数返回一个元组,包含长度、最大值、最小值、平均值。示例调用展示了函数的使用和预期输出。四、21.```python#假设接收到的串口数据字符串data_str="23.5,24.1,23.8"#分割字符串,转换成浮点数列表temperatures=[float(value)forvalueindata_str.split(',')]#计算平均值average_temp=sum(temperatures)/len(temperatures)#打印结果print(f"Receivedtemperatures:{temperatures}")print(f"Averagetemperature:{average_temp}")#注释:此代码模拟接收串口温度数据,分割、转换、计算平均值并打印。```*解析:假设`data_str`包含从串口接收到的温度数据。使用`split(',')`方法按逗号分割字符串,得到温度值的字符串列表。使用列表推导式和`float()`函数将字符串列表转换为浮点数列表`temperatures`。使用`sum(temperatures)`计算总和,用`len(temperatures)`获取数量,相除得到平均值`average_temp`。最后打印接收到的温度列表和计算出的平均值。代码注释说明了功能。22.```pythonimportpandasaspd#假设employee.csv文件存在并如下内容:#Name,Age,Department#Alice,30,HR#Bob,35,Engineering#Charlie,40,Engineering#David,25,Salesdf=pd.read_csv('employee.csv')filtered_df=df[df['Department']=='Engineering'].sort_values(by='Age',ascending=False)print(filtered_df)```*解析:导入`pandas`。使用`pd.read_csv('employee.csv')`读取CSV文件到DataFrame`df`。使用布尔索引`df['Department']=='Engineering'`筛选出部门为"Engineering"的员工记录,结果是一个DataFrame。使用`sort_values(by='Age',ascending=False)`对筛选出的DataFrame按"Age"列进行降序排序。结果存储在`filtered_df`中。最后打印排序后的DataFrame。23.```pythonimportnumpyasnpimportpandasaspd#创建5x5随机整数数组,范围1-100arr=np.random.randint(1,101,size=(5,5))#按列优先顺序设置对角线元素为0arr.ravel(order='F')[np.arange(5)]=0#转换为PandasDataFramedf=pd.DataFrame(arr,columns=["A","B","C","D","E"])print(df)```*解析:导入`numpy`和`pandas`。使用`np.random.randint(1,101,size=(5,5))`创建一个5x5的数组,元素为1到100之间的随机整数。使用`ravel(order='F')`将数组按列优先顺序展平成一维数组。使用`np.arange(5)`生成索引数组`[0,1,2,3,4]`,用于指定要修改的对角线元素位置,将其值设为0。最后,使用`pd.DataFrame(arr,columns=["A","B","C","D","E"])`将修改后的NumPy数组转换为PandasDataFrame,并指定列名为"A"到"E"。打印DataFrame。24.```pythonfromsklearn.datasetsimportmake_classificationfromsklearn.linear_modelimportLogisticRegression#生成线性可分的数据集X,y=make_classification(n_samples=100,n_features=2,n_informative=2,n_redundant=0,n_clusters_per_class=1,random_state=42)#创建LogisticRegression模型实例model=LogisticRegression()#训练模型model.fit(X,y)#打印系数和截距print("Coefficients:",model.coef_)print("Intercept:",ercept_)```*解析:导入`make_classification`用于生成数据,导入`LogisticRegression`用于创建模型。调用`make_classification`生成包含100个样本、2个特征、2个信息特征、无冗余特征、每个类只有一个簇的线性可分数据集`X`(特征)和`y`(标签)。创建`LogisticRegression`模型实例`model`。调用`model.fit(X,y)`使用生成的数据训练模型。训练完成后,模型实例的`coef_`属性存储系数,`intercept_`属性存储截距。打印这两个属性。25.```pythondefprocess_sensor_data(readings):#a.移除None值readings_cleaned=[rforrinreadingsifrisnotNone]#b.移除负值,用None替换rea

温馨提示

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

评论

0/150

提交评论