这一周的Python语言学习,记录如下。
pip是一个用Python写的用于安装和管理包的包管理系统。它连接一个叫做Python Package Index的在线公共包存储库。它通过配置,也可以连接其它包库。
常用命令
pip install some-package-name
若需要指定特定的版本安装
pip install some-package-name==1.2.2 --force-reinstall
force-reinstall用于指示重新安装指定版本的包。
也可以指定版本的范围安装
pip install some-package-name>=1.3.0,<1.4.0 --force-reinstall
卸载包很容易,执行如下操作
pip uninstall some-package-name
例如,我们有一个Python工作环境的requirement.txt文件。
pandas==1.2.5
numpy==1.21.1
安装这些包
pip install -r requirement.txt
我们进入自己的Python工作环境,使用如下命令,获取工作环境的配置包文件
pip freeze > requirement.txt
我们想知道已经安装了那些Python包
pip list
进一步,结合grep命令,搜索到你感兴趣包的是否安装。
pip list | grep pandas
我们想了解包更详细的信息
pip show some-package-name
我们想了解包之间兼容的信息
pip check
pickle是Python中序列化对象的标准方式。
我们可以使用pickle操作来序列化机器学习模型,并将序列化的格式保存到一个文件中。以后,我们可以加载这个文件来反序列化模型,用它来做新的预测。
我们基于一份公开的糖尿病发病数据集,构建逻辑回归模型,并保存模型,后来加载模型,用于新样本的预测。
import os
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
import pickle
import warnings
warnings.filterwarnings('ignore')
url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv"
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
dataframe = pd.read_csv(url, names=names)
array = dataframe.values
X = array[:,0:8]
y = array[:,8]
test_size = 0.33
seed = 7
# 数据计划分
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=test_size, random_state=seed)
# 拟合模型
model = LogisticRegression()
model.fit(X_train, Y_train)
# 模型保存
model_folder = './model/'
if not os.path.exists(model_folder):
os.makedirs(model_folder)
filename = model_folder + 'LR_2022_week1_finalized_model.sav'
pickle.dump(model, open(filename, 'wb'))
# 加载模型
loaded_model = pickle.load(open(filename, 'rb'))
# 模型的效果分析
pred_result = loaded_model.predict(X_test)
model_result = accuracy_score(y_test, pred_result)
print(round(model_result, 2))
运行结果
0.79
pdf和docx是两种常用的格式文件,如何用Python实现彼此的转换?我们可以使用pdf2docx
和docx2pdf
两个包来做这个有趣的事情。
执行如下命令
pip install pdf2docx
pip install docx2pdf
若是已经安装,请忽略
pdf文件全部页面转换为docx
方法一:
# 方法1
from pdf2docx import Converter
pdf_file = './file/sample.pdf'
docx_file = './file/sample.docx'
cv = Converter(pdf_file)
cv.convert(docx_file)
cv.close()
方法二:
# 方法2
from pdf2docx import parse
pdf_file = './file/sample.pdf'
docx_file = './file/sample2.docx'
parse(pdf_file, docx_file)
pdf文件部分页面转换为docx
# 指定单独PDF页面转化为docx
from pdf2docx import Converter
pdf_file = './file/sample.pdf'
docx_file = './file/sample2.docx'
pages_list = [0]
cv = Converter(pdf_file)
cv.convert(docx_file, pages=pages_list)
cv.close()
docx文件转换为pdf
from docx2pdf import convert
docx_file = './file/input.docx'
pdf_file = './file/output.pdf'
convert(docx_file, pdf_file)