的库,简直是做HTTP请求时的百宝箱。无论是GET、POST还是上传文件,这玩意儿能搞定大部分需求。要是你还在用处理请求,劝你赶紧试试这个库,可能会怀疑自己之前怎么活过来的。
GET请求,轻松搞定
想获取网页内容?一个GET请求就能轻松拿下:
importrequests
response=requests.get("https://jsonplaceholder.typicode.com/posts/1")
print(response.status_code)返回状态码
print(response.json())直接转成JSON数据
运行完会发现,获取JSON数据简直不要太简单chi2,代码比传统方法短了好几倍!
温馨提示:记得检查状态码。状态码200才是成功,不然别傻傻用.text。
POST请求,让数据飞一会儿
POST请求通常用来提交数据,比如登录、注册啥的:
url="https://jsonplaceholder.typicode.com/posts"
payload={
"title":"foo",
"body":"bar",
"userId":1
}
response=requests.post(url,json=payload)
print(response.json())直接返回新增数据
和GET一样方便,POST请求的参数直接扔进去,搞定!
温馨提示:用json参数传递数据,比data参数更智能,服务器直接认JSON格式。
文件上传,轻松自在
需要上传文件?用起来也很简单:
url="https://httpbin.org/post"
files={"file":open("example.txt","rb")}
response=requests.post(url,files=files)
print(response.json())
是不是很神奇?只要把文件打包成files,剩下的都交给。
超时设置,别让程序死磕
没事加个超时,避免程序卡死:
response=requests.get("https://httpbin.org/delay/5",timeout=2)
如果超过2秒没响应,就会抛出异常
超时可以保护你的程序免于无休止等待,非常适合爬虫类项目。
代理支持,方便爬虫
需要翻墙或者用代理IP?完全没问题:
proxies={
"http":"http://10.10.1.10:3128",
"https":"http://10.10.1.10:1080"
}
response=requests.get("https://httpbin.org/ip",proxies=proxies)
print(response.text)
总结
就是这么强大,简单到让人爱不释手。大部分HTTP相关的需求,它都能搞定!
-learn,机器学习的利器!
要说-learn是机器学习领域的全能工具箱一点都不夸张。无论是预处理、模型训练还是评估chi2,这个库的接口统一且简单,是真·入门神器。
数据预处理,清洗神器
在机器学习里,数据清洗可是基础。-learn提供了丰富的工具:
fromsklearn.preprocessingimportStandardScaler
data=[[1,2,3],[4,5,6],[7,8,9]]
scaler=StandardScaler()
scaled_data=scaler.fit_transform(data)
print(scaled_data)
直接用,数据就被归一化到标准正态分布,方便模型收敛。
简单模型,几行搞定
想训练一个决策树分类器?简单到只用几行代码:
fromsklearn.treeimportDecisionTreeClassifier
fromsklearn.datasetsimportload_iris
fromsklearn.model_selectionimporttrain_test_split
加载数据集
data=load_iris()
X_train,X_test,y_train,y_test=train_test_split(data.data,data.target,test_size=0.2)
模型训练
clf=DecisionTreeClassifier()
clf.fit(X_train,y_train)
模型评估
print("模型准确率:",clf.score(X_test,y_test))
运行完,模型的准确率就直接打印出来了。不用写复杂代码就能完成数据加载、分割、训练、评估。
超参数调优,网格搜索一招搞定
模型参数调优,手动试?累死你也找不到最优解,用才是正道:
fromsklearn.model_selectionimportGridSearchCV
parameters={'max_depth':[3,5,7],'min_samples_split':[2,5,10]}
grid_search=GridSearchCV(clf,parameters,cv=3)
grid_search.fit(X_train,y_train)
print("最佳参数:",grid_search.best_params_)
print("最佳得分:",grid_search.best_score_)
几行代码,直接找到最优参数。再也不用靠感觉调参了。
特征选择,提升模型表现
特征选择可以提升模型表现,是个好用的工具:
fromsklearn.feature_selectionimportSelectKBest,chi2
X_new=SelectKBest(chi2,k=2).fit_transform(data.data,data.target)
print(X_new[:5])输出选择后的特征
只挑重要特征,让模型更简单、更高效。
保存模型,用不上再训练
模型训练太耗时?可以保存下来下次直接用:
fromsklearn.externalsimportjoblib
保存模型
joblib.dump(clf,'model.pkl')
加载模型
loaded_model=joblib.load('model.pkl')
print("加载后模型准确率:",loaded_model.score(X_test,y_test))
常见问题
1.报错版本问题:-learn有些功能对版本有要求,建议用最新版。2.小心过拟合:训练太久模型反而表现差,多用交叉验证看看。
有了-learn,机器学习变得不再那么可怕了。无论是入门还是快速开发,这个库都是极好的选择。