Skip to content

Latest commit

 

History

History
328 lines (195 loc) · 11.8 KB

top-data-python-packages-know-2023.md

File metadata and controls

328 lines (195 loc) · 11.8 KB

2023 年需了解的顶级数据 Python 包

原文:www.kdnuggets.com/2023/01/top-data-python-packages-know-2023.html

2023 年需了解的顶级数据 Python 包

图片来自Unsplash,由Clément Hélardot提供

2022 年对任何数据人员来说都是一个优秀的年份,尤其是对于那些使用 Python 的人,因为有许多令人兴奋的包来提升我们的数据能力。已列出了各种必须学习的数据 Python 包 2022,我们可能希望在新的一年中添加一些新东西来改善我们的技术栈。


我们的前三个课程推荐

1. Google 网络安全证书 - 快速进入网络安全职业的轨道

2. Google 数据分析专业证书 - 提升你的数据分析能力

3. Google IT 支持专业证书 - 支持你所在的组织的 IT


面对 2023 年,各种 Python 包将改善我们在新的一年的数据工作流程。这些包是什么呢?让我们看看我的推荐。

从数据清理包到机器学习实现,这些是 2023 年你需要了解的顶级数据 Python 包。

1. Pyjanitor

Pyjanitor是一个开源 Python 包,专门为通过方法链进行数据清理而开发,旨在改进 Pandas API 的数据清理功能。

我们知道许多用于数据清理的 Pandas 方法,例如 dropna 来删除所有缺失值。通过 Pyjanitor,数据清理过程将通过在 API 中引入额外的方法而得到提升。它是如何工作的?让我们用示例数据来尝试一下这个包。

我们将使用 Kaggle 许可证下的泰坦尼克号训练数据作为样本。让我们开始安装 Pyjanitor 包。

安装

pip install pyjanitor

在使用 Pyjanitor 进行数据清理之前,我们先查看当前的数据集。

import pandas as pd
df = pd.read_csv('train.csv')
df.head()

输出

2023 年需了解的顶级数据 Python 包

作者提供的图片

使用 Pyjanitor 包,我们可以进行各种扩展的数据清理,并实现 Pandas API 的链式方法。让我们通过以下代码看看这个包是如何工作的。

代码示例

import janitor
df.remove_columns(["Cabin"]).expand_column(column_name = 'Embarked').clean_names()

输出

2023 年需了解的顶级数据 Python 包

作者提供的图片

通过导入 Pyjanitor 包,它将自动在 Pandas DataFrame 中实现。在上面的代码中,我们使用 Pyjanitor 完成了以下操作:

  1. 使用 remove_columns 方法删除‘Cabin’列,

  2. 对‘Embarked’列进行类别编码(独热编码),使用 expand_column 方法,

  3. 使用 clean_names 方法将所有变量标题名称转换为小写,如果有空格,将用下划线替换。

Pyjanitor 中还有许多我们可以用于数据清理的函数。请参阅他们的文档以获取完整的 API 列表。

2. Pingouin

Pingouin是一个用于任何常见统计活动的开源 Python 包,适用于任何数据科学家。该包通过提供一行代码而设计为简单,同时仍然提供各种统计测试。

安装

pip install pingouin

安装完包后,让我们尝试使用 Pingouin 进行统计分析。例如,我们将使用之前的 Titanic 数据集进行 T 检验和 ANOVA 检验。

代码示例

import pingouin as pg

#T-Test
print('T-Test example')
pg.ttest( df['Age'], df['Fare'])

print('\n')
# ANOVA test
print('ANOVA test example')
pg.anova(data=df, dv='Age', between='SibSp', detailed=True)

输出

2023 年必须了解的顶级数据 Python 包

图片来源于作者

使用一行代码,Pingouin 在数据框对象中提供统计测试结果。还有许多其他函数可以帮助我们的分析,我们可以在 Pingouin APIs 文档中进行探索。

3. PyCaret

PyCaret是一个开源的 Python 包,用于自动化机器学习工作流。该包提供了一个低代码环境,通过提供端到端的机器学习模型工具,加快模型实验。

在典型的数据科学工作中,存在许多活动,如清理数据、选择模型、进行超参数调整和评估模型。PyCaret 旨在通过将所有必要的代码最小化为尽可能少的行,从而消除所有麻烦。该包将多个机器学习框架集合在一起。让我们尝试使用 PyCaret 以了解更多信息。

安装

pip install pycaret

使用之前的 Titanic 数据集;我们将开发一个模型分类器来预测“Survive”变量。

代码示例

from pycaret.classification import *
clf_exp = setup(data = df, target = 'Survived') 

输出

2023 年必须了解的顶级数据 Python 包

图片来源于作者

在上述代码中,我们使用 setup 函数启动实验。通过传递数据和目标,PyCaret 将推断我们的数据,并基于给定的数据开发机器学习模型。实际输出信息比上面的图像要长,并且对我们建模过程中的发生情况具有洞察力。

让我们查看模型结果,并从训练数据中推断最佳模型。

best_model = compare_models(sort = 'precision')

输出

2023 年必须了解的顶级数据 Python 包

图片来源于作者

print(best_model)

输出

2023 年值得了解的顶级数据 Python 包

图片由作者提供

PyCaret 分类器实验将训练数据测试到 14 个不同的分类器中,并给出最佳模型。在我们的例子中,它是 RidgeClassifier。

你仍然可以使用 PyCaret 进行许多实验。要探索更多内容,请参考他们的 文档

4. BentoML

BentoML 是一个开源的 Python 包,用于快速将模型部署到生产环境,并尽可能少的代码行。该包旨在专注于生产化机器学习模型,使用户能够轻松使用。

让我们尝试 BentoML 包并了解它是如何工作的。

安装

pip install bentoml 

对于 BentoML 示例,我们将使用 包教程 中的代码,并进行一些修改。

代码示例

我们将使用鸢尾花数据集训练模型分类器。

from sklearn import svm, datasets

iris = datasets.load_iris()
X, y = iris.data, iris.target

iris_clf = svm.SVC()
iris_clf.fit(X, y)

使用 BentoML,我们可以将机器学习模型存储在本地或云端模型存储库中,并在生产环境中检索它。

import bentoml

bentoml.sklearn.save_model("iris_clf", iris_clf)

然后我们可以在 BentoML 环境中使用 runner 实例来使用存储的模型。

# Create a Runner instance and implement a runner instance in local
iris_clf_runner = bentoml.sklearn.get("iris_clf:latest").to_runner()
iris_clf_runner.init_local()

# Using the predictor on unseen data
iris_clf_runner.predict.run([[4.1, 2.3, 5.5, 1.8]])

输出

array([2])

接下来,我们可以通过运行以下代码来初始化 BentoML 中保存的模型服务,以创建一个 Python 文件并启动服务器。

%%writefile service.py
import numpy as np
import bentoml
from bentoml.io import NumpyNdarray

iris_clf_runner = bentoml.sklearn.get("iris_clf:latest").to_runner()

svc = bentoml.Service("iris_clf_service", runners=[iris_clf_runner])

@svc.api(input=NumpyNdarray(), output=NumpyNdarray())
def classify(input_series: np.ndarray) -> np.ndarray:
    return iris_clf_runner.predict.run(input_series)

我们通过运行下面的代码来启动服务器。

!bentoml serve service.py:svc --reload

输出

2023 年值得了解的顶级数据 Python 包

图片由作者提供

输出将显示开发服务器的当前日志以及我们可以访问的位置。如果我们对开发结果满意,我们可以继续进行生产。我建议你参考 文档 以了解生产过程。

5. Streamlit

Streamlit 是一个开源的 Python 包,用于为数据科学家创建自定义 Web 应用。这个包提供了有见地的代码来构建和自定义各种数据应用。让我们尝试这个包来了解它是如何工作的。

安装

pip install streamlit 

Streamlit Web 应用通过执行 Python 脚本来运行。那就是为什么我们在使用 streamlit 命令运行之前需要准备脚本。我们可以使用你喜欢的 IDE 或 Jupyter Notebook 来运行下一个示例,但我会展示如何在 Jupyter Notebook 中使用 Streamlit 创建 Web 应用。

代码示例

%%writefile streamlit_example.py
import streamlit as st
import pandas as pd
import numpy as np

st.title('Titanic Data')

data = pd.read_csv('train.csv')

st.write('Shows top 5 of the data')
st.dataframe(data.head())

st.title('Bar Chart Visualization with Age')

col = st.selectbox('Select the categorical columns', data.select_dtypes('object').columns)

st.bar_chart(data, x = col, y='Age')

上述代码会创建一个名为 streamlit_example.py 的脚本,并在我们运行 Streamlit 命令时创建一个类似于下面输出的 Web 应用。

!streamlit run streamlit_example.py

2023 年值得了解的顶级数据 Python 包

图片由作者提供

这段代码易于学习,你几乎不需要任何时间就能用 Streamlit 创建你的网络应用。如果你想了解更多关于如何使用 Streamlit 包创建的内容,你可以参考文档

结论

面对 2023 年,我们应当比 2022 年更好地提升我们的数据技能。还有什么比通过学习令人惊叹的 Python 包来扩展我们的数据工具更好的方法呢?这些顶级的 Python 包包括

  1. Pyjanitor

  2. Pingouin

  3. PyCaret

  4. BentoML

  5. Streamlit

Cornellius Yudha Wijaya 是一名数据科学助理经理和数据撰稿人。在全职工作于印尼安联保险公司期间,他喜欢通过社交媒体和写作平台分享 Python 和数据的技巧。

更多相关主题