sklearn库函数的使用
1、输出由英文字母大小写或数字组成的长度为30且不重复的随机字符串。
提示:利用random.sample
////////////////////////////////////////////////////////////////////////
参考答案:
import string
x = string.ascii_letters + string.digits
import random
print(''.join(random.sample(x, 30)))
////////////////////////////////////////////////////////////////////////
2、列表推导式。使用列表推导式生成列表,其元素为100以内所有能被3整除的数。
////////////////////////////////////////////////////////////////////////
参考答案:
x=[i for i in range(1,100) if i%3==0]
print(x)
////////////////////////////////////////////////////////////////////////
3、编写程序,生成一个包含20个随机整数的列表,然后对其中偶数下标的元素进行降序排列,奇数下标的元素不变。
////////////////////////////////////////////////////////////////////////
参考答案:
import random
x = [random.randint(0,100) for i in range(20)]
print(x)
x[::2] = sorted(x[::2], reverse=True)
print(x)
////////////////////////////////////////////////////////////////////////
4、字典练习。输入字符串,输出字符串中次数最多的字母及其出现次数,如果有多个字母出现次数一样,则依次输出字母及其出现次数。
////////////////////////////////////////////////////////////////////////
参考答案:
s = input()
d = {}
for c in s:
d[c] =d.get(c, 0) + 1
max_key = max(d, key=lambda k: d[k])
max_value=d[max_key]
d2 = {k: v for k, v in d.items() if v==max_value}
print(d2)
////////////////////////////////////////////////////////////////////////
5、接收任意多个整数并输出最大值及求和。编写函数demo,demo可以接收任意多个整数并输出其中的最大值和所有整数之和。
////////////////////////////////////////////////////////////////////////
参考答案:
def demo(*v):
print(max(v))
print(sum(v))
v=eval(input())
demo(*v)
////////////////////////////////////////////////////////////////////////
6、数据可视化。随机生成1000个[0,1]区间内的数字作为X,再随机生成1000个[0,1]区间内的数字作为Y,将1000个X、Y坐标绘制成散点图。
////////////////////////////////////////////////////////////////////////
参考答案:
import numpy as np
import matplotlib.pylab as pl
x=np.random.random(1000)
y=np.random.random(1000)
pl.scatter(x,y,s=x500,c=u’r’,marker=u’’)
////////////////////////////////////////////////////////////////////////
7、使用 pandas 读取文件 data.csv 中的数据,创建 DataFrame 对象,并删除其中所有缺失值。然后,按月份进行统计,使用 matplotlib 绘制柱状图显示每个月份的销量。
////////////////////////////////////////////////////////////////////////
参考答案:
import pandas as pd
import matplotlib.pyplot as plt
# 读取数据,丢弃缺失值
df = pd.read_csv('data.csv', encoding='cp936')
df = df.dropna()
# 按月统计
df1 = df[:]
df1['月'] = df1['日期'].map(lambda x: x[:x.rindex('-')])
df1 = df1.groupby(by='月', as_index=False).sum()
#生成柱状图
plt.figure(figsize=(8,4))
plt.bar(df1['月'],df1['销量'])
plt.show()
////////////////////////////////////////////////////////////////////////
8、斐波那契数列。有一数列 1,1,2,3,5,8,13,21,34 ……。求数值n项的值?
提示:需要考虑算法的复杂度、扩展性。
////////////////////////////////////////////////////////////////////////
参考答案:
def container(func):
cache={}
def wrap(*args):
res=cache.get(args)
if not res:
res=cache[args]=func(*args)
return res
return wrap
@container #用Python里面的装饰器对缓存算法封装
def fib(n):
if n<=1:
return n
else:
return fib(n-1) + fib(n-2)
print([fib(n) for n in range(1,50)])
////////////////////////////////////////////////////////////////////////
9、创建Student类。创建Student类,要求满足以下条件:
(1)创建构造方法,初始化学生姓名name,平时成绩reg_grade(满分100)和期末成绩end_grade(满分100);
(2)创建实例方法,计算并输出总成绩:学生总成绩=平时成绩*0.3+期末成绩*0.7。
////////////////////////////////////////////////////////////////////////
参考答案:
class Student:
def __init__(self, name,reg_grade=0, end_grade=0):
self.__name=name
self.__reg_grade=reg_grade
self.__end_grade = end_grade
def calculate_grade(self):
return self.__reg_grade*0.3+self.__end_grade*0.7
name = input()
reg_grade = int(input())
end_grade = int(input())
stu= Student(name, reg_grade, end_grade)
grade= stu.calculate_grade()
print(f"{name},您的总成绩是{grade}")
////////////////////////////////////////////////////////////////////////
10、文件内容读取。假设当前目录下有一个英文文本文件(文件名test.txt)。编写程序读取其内容,并将其中的大写字母变为小写字母,小写字母变为大写字母。
////////////////////////////////////////////////////////////////////////
参考答案:
from pathlib import Path
path = Path('test.txt')
contents = path.read_text()
print(contents.swapcase())
////////////////////////////////////////////////////////////////////////
11、KNN算法。
X_train = [[1, 180, 85], [1, 180, 86], [1, 180, 90], [1, 180, 100], [1, 185, 120], [1, 175, 80], [1, 175, 60], [1, 170, 60], [1, 175, 90], [1, 175, 100], [1, 185, 90], [1, 185, 80]]
y_train = ['稍胖', '稍胖', '稍胖', '过胖','太胖', '正常', '偏瘦', '正常', '过胖', '太胖', '正常', '偏瘦']
X_test = [[1, 180, 70], [1, 160, 90], [1, 170, 85]]
假定已经给出了如上的训练数据X_train、y_train,请使用sklearn的KNN算法(k选择3),对给定的测试数据X_test进行分类。
运行结果如下所示:
['偏瘦' '太胖' '正常']
////////////////////////////////////////////////////////////////////////
参考答案:
X_train = [[1, 180, 85], [1, 180, 86], [1, 180, 90], [1, 180, 100],
[1, 185, 120], [1, 175, 80], [1, 175, 60], [1, 170, 60],
[1, 175, 90], [1, 175, 100], [1, 185, 90], [1, 185, 80]]
y_train = ['稍胖', '稍胖', '稍胖', '过胖','太胖', '正常', '偏瘦', '正常', '过胖', '太胖', '正常', '偏瘦']
X_test = [[1, 180, 70], [1, 160, 90], [1, 170, 85]]
#导入模型
from sklearn.neighbors import KNeighborsClassifier
#创建实例
knn = KNeighborsClassifier(3)
#模型训练
knn.fit(X_train, y_train)
#模型预测
result=knn.predict(X_test)
print(result)
////////////////////////////////////////////////////////////////////////
12、朴素贝叶斯。朴素贝叶斯数据集如表所示。使用朴素贝叶斯算法预测(无风,不潮湿,多云,闷热)的情况是否下雨。

////////////////////////////////////////////////////////////////////////
参考答案:
import pandas as pd
data=pd.read_excel('朴素贝叶斯数据集.xlsx')
data=data.replace(['是','否'],[1,0])
data=data.drop(['日期'],axis=1)
x=data.values[:,:-1]
y=data.values[:,-1:]
#step1 调用伯努利朴素贝叶斯模型
from sklearn.naive_bayes import BernoulliNB
#step2 创建模型实例
bnb = BernoulliNB()
#step3 模型训练
bnb.fit(x,y)
#step4 模型预测
day_pred=[[0,0,1,0]] #预测数据
y_pred = bnb.predict(day_pred)
print('预测结果为:',y_pred)
////////////////////////////////////////////////////////////////////////
更多推荐



所有评论(0)