爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据

      首页 知识中心 软件开发 文章详情页

      Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据

      2024-08-08 09:32:16 阅读次数:38

      python,编程开发

      分类问题属于机器学习问题的类别,其中给定一组特征,任务是预测离散值。分类问题的一些常见示例是,预测肿瘤是否为癌症,或者学生是否可能通过考试。

      在本文中,鉴于银行客户的某些特征,我们将预测客户在6个月后是否可能离开银行。客户离开组织的现象也称为客户流失。因此,我们的任务是根据各种客户特征预测客户流失。

      $ pip install pytorch

      数据集

      让我们将所需的库和数据集导入到我们的Python应用程序中:

      import torch
      import torch.nn as nn
      import numpy as np
      import pandas as pd
      import matplotlib.pyplot as plt
      import seaborn as sns
      %matplotlib inline

      我们可以使用​​pandas​​​库的​​read_csv()​​方法来导入包含我们的数据集的CSV文件。

      dataset = pd.read_csv(r'E:Datasetscustomer_data.csv')

      让我们输出数据集 :

      dataset.shape

      输出:

      (10000, 14)

      输出显示该数据集具有1万条记录和14列。我们可以使用​​head()​​数据框的方法来输出数据集的前五行。

      dataset.head()

      输出:

      Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据

      您可以在我们的数据集中看到14列。根据前13列,我们的任务是预测第14列的值,即​​Exited​​。

      探索性数据分析

      让我们对数据集进行一些探索性数据分析。我们将首先预测6个月后实际离开银行并使用饼图进行可视化的客户比例。让我们首先增加图形的默认绘图大小:

      fig_size = plt.rcParams["figure.figsize"]
      fig_size[0] = 10
      fig_size[1] = 8
      plt.rcParams["figure.figsize"] = fig_size

      以下脚本绘制该​​Exited​​列的饼图。

      dataset.Exited.value_counts().plot(kind='pie', autopct='%1.0f%%', colors=['skyblue', 'orange'], explode=(0.05, 0.05))

      输出:

      Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据

      输出显示,在我们的数据集中,有20%的客户离开了银行。这里1代表客户离开银行的情况,0代表客户没有离开银行的情况。让我们绘制数据集中所有地理位置的客户数量:

      Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据

      输出显示,几乎一半的客户来自法国,而西班牙和德国的客户比例分别为25%。


      01

      Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据

      02

      Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据

      03

      Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据

      04

      Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据

      现在,让我们绘制来自每个唯一地理位置的客户数量以及客户流失信息。我们可以使用库中的​​countplot()​​​函数​​seaborn​​来执行此操作。

      Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据

      输出显示,尽管法国客户总数是西班牙和德国客户总数的两倍,但法国和德国客户离开银行的客户比例是相同的。同样,德国和西班牙客户的总数相同,但是离开银行的德国客户数量是西班牙客户的两倍,这表明德国客户在6个月后离开银行的可能性更大。

      数据预处理

      在训练PyTorch模型之前,我们需要预处理数据。如果查看数据集,您将看到它具有两种类型的列:数值列和分类列。数字列包含数字信息。​​CreditScore​​​,​​Balance​​​,​​Age​​​等。类似地,​​Geography​​​和​​Gender​​​是分类列,因为它们含有分类信息,如客户的位置和性别。有几列可以视为数字列和类别列。例如,该​​HasCrCard​​​列的值可以为1或0。但是,那​​HasCrCard​​列包含有关客户是否拥有信用卡的信息。

      让我们再次输出数据集中的所有列,并找出哪些列可以视为数字列,哪些列应该视为类别列。​​columns​​数据框的属性显示所有列名称:

      Index(['RowNumber', 'CustomerId', 'Surname', 'CreditScore', 'Geography', 'Gender', 'Age', 'Tenure', 'Balance', 'NumOfProducts', 'HasCrCard', 'IsActiveMember', 'EstimatedSalary', 'Exited'], dtype='object')

      从我们的数据列,我们将不使用的​​RowNumber​​​,​​CustomerId​​​以及​​Surname​​​列,因为这些列的值是完全随机的,并与输出无关。例如,客户的姓氏对客户是否离开银行没有影响。其中列的其余部分,​​Geography​​​,​​Gender​​​,​​HasCrCard​​​,和​​IsActiveMember​​列可以被视为类别列。让我们创建这些列的列表:除该列外,其余所有列均可视为数字列。

      numerical_columns = ['CreditScore', 'Age', 'Tenure', 'Balance', 'NumOfProducts', 'EstimatedSalary']

      最后,输出(​​Exited​​​列中的值)存储在​​outputs​​变量中。

      我们已经创建了分类,数字和输出列的列表。但是,目前,分类列的类型不是分类的。您可以使用以下脚本检查数据集中所有列的类型:
      输出:

      RowNumber            int64
      CustomerId int64
      Surname object
      CreditScore int64
      Geography object
      Gender object
      Age int64
      Tenure int64
      Balance float64
      NumOfProducts int64
      HasCrCard int64
      IsActiveMember int64
      EstimatedSalary float64
      Exited int64
      dtype: object

      您可以看到​​Geography​​​和​​Gender​​​列的类型是object,​​HasCrCard​​​和​​IsActive​​​列的类型是int64。我们需要将分类列的类型转换为​​category​​​。我们可以使用​​astype()​​函数来做到这一点,

      现在,如果再次绘制数据集中各列的类型,您将看到以下结果:

      输出量

      RowNumber             int64
      CustomerId int64
      Surname object
      CreditScore int64
      Geography category
      Gender category
      Age int64
      Tenure int64
      Balance float64
      NumOfProducts int64
      HasCrCard category
      IsActiveMember category
      EstimatedSalary float64
      Exited int64
      dtype: object

      现在让我们查看​​Geography​​列中的所有类别:

      Index(['France', 'Germany', 'Spain'], dtype='object')

      当您将列的数据类型更改为类别时,该列中的每个类别都会分配一个唯一的代码。例如,让我们绘制列的前五行,​​Geography​​并输出前五行的代码值:

      输出:

      0    France
      1 Spain
      2 France
      3 France
      4 Spain
      Name: Geography, dtype: category
      Categories (3, object): [France, Germany, Spain]

      以下脚本在该列的前五行中绘制了值的代码​​Geography​​:

      输出:

      0    0
      1 2
      2 0
      3 0
      4 2
      dtype: int8

      输出显示法国已编码为0,西班牙已编码为2。

      将分类列与数字列分开的基本目的是,可以将数字列中的值直接输入到神经网络中。但是,必须首先将类别列的值转换为数字类型。分类列中的值的编码部分地解决了分类列的数值转换的任务。

      由于我们将使用PyTorch进行模型训练,因此需要将分类列和数值列转换为张量。首先让我们将分类列转换为张量。在PyTorch中,可以通过numpy数组创建张量。我们将首先将四个分类列中的数据转换为numpy数组,然后将所有列水平堆叠,如以下脚本所示:

      geo = dataset['Geography'].cat.codes.values
      ...

      上面的脚本输出分类列中前十条记录。输出如下:输出:

      array([[0, 0, 1, 1],
      [2, 0, 0, 1],
      [0, 0, 1, 0],
      [0, 0, 0, 0],
      [2, 0, 1, 1],
      [2, 1, 1, 0],
      [0, 1, 1, 1],
      [1, 0, 1, 0],
      [0, 1, 0, 1],
      [0, 1, 1, 1]], dtype=int8)

      现在要从上述numpy数组创建张量,您只需将数组传递给模块的​​tensor​​​类​​torch​​。

      输出:

      tensor([[0, 0, 1, 1],
      [2, 0, 0, 1],
      [0, 0, 1, 0],
      [0, 0, 0, 0],
      [2, 0, 1, 1],
      [2, 1, 1, 0],
      [0, 1, 1, 1],
      [1, 0, 1, 0],
      [0, 1, 0, 1],
      [0, 1, 1, 1]])

      在输出中,您可以看到类别数据的numpy数组现在已转换为​​tensor​​对象。同样,我们可以将数值列转换为张量:

      numerical_data = np.stack([dataset[col].values for col in numerical_columns], 1)
      ...

      输出:

      tensor([[6.1900e+02, 4.2000e+01, 2.0000e+00, 0.0000e+00, 1.0000e+00, 1.0135e+05],
      [6.0800e+02, 4.1000e+01, 1.0000e+00, 8.3808e+04, 1.0000e+00, 1.1254e+05],
      [5.0200e+02, 4.2000e+01, 8.0000e+00, 1.5966e+05, 3.0000e+00, 1.1393e+05],
      [6.9900e+02, 3.9000e+01, 1.0000e+00, 0.0000e+00, 2.0000e+00, 9.3827e+04],
      [8.5000e+02, 4.3000e+01, 2.0000e+00, 1.2551e+05, 1.0000e+00, 7.9084e+04]])

      在输出中,您可以看到前五行,其中包含我们数据集中六个数字列的值。最后一步是将输出的numpy数组转换为​​tensor​​对象。输出:

      tensor([1, 0, 1, 0, 0])

      现在,让我们绘制分类数据,数值数据和相应输出的形状: 输出:

      torch.Size([10000, 4])
      torch.Size([10000, 6])
      torch.Size([10000])

      在训练模型之前,有一个非常重要的步骤。我们将分类列转换为数值,其中唯一值由单个整数表示。例如,在该​​Geography​​列中,我们看到法国用0表示,德国用1表示。我们可以使用这些值来训练我们的模型。但是,更好的方法是以N维向量的形式表示分类列中的值,而不是单个整数。

      我们需要为所有分类列定义矢量大小。关于维数没有严格的规定。定义列的嵌入大小的一个好的经验法则是将列中唯一值的数量除以2(但不超过50)。例如,对于该​​Geography​​​列,唯一值的数量为3。该​​Geography​​列的相应嵌入大小将为3/2 = 1.5 = 2(四舍五入)。以下脚本创建一个元组,其中包含所有类别列的唯一值数量和维度大小:

      categorical_column_sizes = [len(dataset[column].cat.categories) for column in categorical_columns]
      ...

      输出:

      [(3, 2), (2, 1), (2, 1), (2, 1)]

      使用训练数据对监督型深度学习模型(例如我们在本文中开发的模型)进行训练,并在测试数据集上评估模型的性能。因此,我们需要将数据集分为训练集和测试集,如以下脚本所示:

      total_records = 10000
      ....

      我们的数据集中有1万条记录,其中80%的记录(即8000条记录)将用于训练模型,而其余20%的记录将用于评估模型的性能。注意,在上面的脚本中,分类和数字数据以及输出已分为训练集和测试集。为了验证我们已正确地将数据分为训练和测试集:

      print(len(categorical_train_data))
      print(len(numerical_train_data))
      print(len(train_outputs))

      print(len(categorical_test_data))
      print(len(numerical_test_data))
      print(len(test_outputs))

      输出:

      8000
      8000
      8000
      2000
      2000
      2000

      创建预测模型

      我们将数据分为训练集和测试集,现在是时候定义训练模型了。为此,我们可以定义一个名为的类​​Model​​,该类将用于训练模型。看下面的脚本:

      class Model(nn.Module):

      def __init__(self, embedding_size, num_numerical_cols, output_size, layers, p=0.4):
      super().__init__()
      self.all_embeddings = nn.ModuleList([nn.Embedding(ni, nf) for ni, nf in embedding_size])
      self.embedding_dropout = nn.Dropout(p)
      self.batch_norm_num = nn.BatchNorm1d(num_numerical_cols)



      return x

      接下来,要查找输入层的大小,将类别列和数字列的数量加在一起并存储在​​input_size​​​变量中。之后,​​for​​​循环迭代,并将相应的层添加到​​all_layers​​列表中。添加的层是:

      • ​​Linear​​:用于计算输入和权重矩阵之间的点积
      • ​​ReLu​​:用作激活函数
      • ​​BatchNorm1d​​:用于对数字列应用批量归一化
      • ​​Dropout​​:用于避免过拟合

      在后​​for​​​循环中,输出层被附加到的层的列表。由于我们希望神经网络中的所有层都按顺序执行,因此将层列表传递给​​nn.Sequential​​该类。

      接下来,在该​​forward​​方法中,将类别列和数字列都作为输入传递。类别列的嵌入在以下几行中进行。

      embeddings = []

      数字列的批量归一化可通过以下脚本应用:

      ``

      x_numerical = self.batch_norm_num(x_numerical)

      最后,将嵌入的分类列​​x​​​和数字列​​x_numerical​​​连接在一起,并传递给sequence ​​layers​​。

      训练模型

      要训练模型,首先我们必须创建​​Model​​在上一节中定义的类的对象。

      您可以看到我们传递了分类列的嵌入大小,数字列的数量,输出大小(在我们的例子中为2)以及隐藏层中的神经元。您可以看到我们有三个分别具有200、100和50个神经元的隐藏层。
      让我们输出模型并查看:

      print(model)

      输出:

      Model(
      (all_embeddings): ModuleList(
      ...
      )
      )

      您可以看到,在第一线性层中,​​in_features​​​变量的值为11,因为我们有6个数字列,并且类别列的嵌入维数之和为5,因此6 + 5 = 11。​​out_features​​的值为2,因为我们只有2个可能的输出。

      在实际训练模型之前,我们需要定义损失函数和将用于训练模型的优化器。以下脚本定义了损失函数和优化器:

      loss_function = nn.CrossEntropyLoss()

      现在,我们训练模型。以下脚本训练模型:

      epochs = 300
      aggregated_losses = []

      for i in range(epochs):


      print(f'epoch: {i:3} loss: {single_loss.item():10.10f}')

      神经元元数设置为300,这意味着要训练模型,完整的数据集将使用300次。​​for​​​为每次迭代期间循环的执行方式,损失是使用损耗函数来计算。每次迭代过程中的损失将添加到​​aggregated_loss​​列表中。

      上面脚本的输出如下:

      epoch: 1 loss: 0.71847951epoch: 26 loss: 0.57145703epoch: 51 loss: 0.48110831epoch: 76 loss: 0.42529839epoch: 101 loss: 0.39972275epoch: 126 loss: 0.37837571epoch: 151 loss: 0.37133673epoch: 176 loss: 0.36773482epoch: 201 loss: 0.36305946epoch: 226 loss: 0.36079505epoch: 251 loss: 0.35350436epoch: 276 loss: 0.35540250epoch: 300 loss: 0.3465710580

      以下脚本绘制了各个时期的损失函数:

      plt.plot(range(epochs), aggregated_losses)plt.ylabel('Loss')plt.xlabel('epoch');`

      输出:

      Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据

      输出显示,最初损失函数迅速降低。在250个步长之后,损失几乎没有减少。

      做出预测

      最后一步是对测试数据进行预测。为此,我们只需要将​​categorical_test_data​​​和​​numerical_test_data​​​传递给​​model​​该类。然后可以将返回的值与实际测试输出值进行比较。以下脚本对测试类进行预测,并输出测试数据的交叉熵损失。

      with torch.no_grad():

      输出:

      Loss: 0.36855841

      测试集上的损失为0.3685,比训练集上获得的0.3465略多,这表明我们的模型有些过拟合。由于我们指定输出层将包含2个神经元,因此每个预测将包含2个值。例如,前5个预测值如下所示:

      print(y_val[:5])

      输出:

      tensor([[ 1.2045, -1.3857],
      [ 1.3911, -1.5957],
      [ 1.2781, -1.3598],
      [ 0.6261, -0.5429],
      [ 2.5430, -1.9991]])

      这种预测的思想是,如果实际输出为0,则索引0处的值应大于索引1处的值,反之亦然。我们可以使用以下脚本检索列表中最大值的索引:

      y_val = np.argmax(y_val, axis=1)

      输出:现在让我们再次输出​​y_val​​列表的前五个值:

      print(y_val[:5])

      输出:

      tensor([0, 0, 0, 0, 0])

      由于在最初预测的输出列表中,对于前五个记录,零索引处的值大于第一索引处的值,因此可以在已处理输出的前五行中看到0。

      最后,我们可以使用从​​sklearn.metrics​​​模块​​confusion_matrix​​​,​​accuracy_score​​​以及​​classification_report​​类找到了准确度,精密度和召回值,混淆矩阵。

      `from sklearn.metrics import classification_report, confusion_matrix, accuracy_scoreprint(confusion_matrix(test_outputs,y_val))print(classification_report(test_outputs,y_val))print(accuracy_score(test_outputs, y_val))`

      输出:

      [[1527 83][ 224 166]]
      precision    recall  f1-score   support

      0 0.87 0.95 0.91 1610
      1 0.67 0.43 0.52 390
      micro avg 0.85 0.85 0.85 2000macro avg 0.77 0.69 0.71 2000weighted avg 0.83 0.85 0.83 20000.8465`

      输出结果表明,我们的模型达到了84.65%的精度,考虑到我们随机选择神经网络模型的所有参数这一事实,这非常令人印象深刻。我建议您尝试更改模型参数,例如训练/测试比例,隐藏层的数量和大小等,以查看是否可以获得更好的结果。

      结论

      PyTorch是Facebook开发的常用深度学习库,可用于各种任务,例如分类,回归和聚类。本文介绍了如何使用PyTorch库对表格数据进行分类。

      Python中用PyTorch机器学习神经网络分类预测银行客户流失模型|附代码数据

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_14293657/5872919,作者:拓端tecdat,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:(17) 运行ForwardPropagation.py代码

      下一篇:Android ViewPager循环左右自动滑动加载Page

      相关文章

      2025-04-14 09:24:23

      python打印宝塔代码

      python打印宝塔代码

      2025-04-14 09:24:23
      python
      2025-04-09 09:16:56

      python四种抽样方法的使用:随机抽样、聚类抽样、系统抽样、分层抽样

      python四种抽样方法的使用:随机抽样、聚类抽样、系统抽样、分层抽样

      2025-04-09 09:16:56
      python , 代码 , 方法 , 机器学习 , 示例
      2025-04-09 09:16:42

      视频 | Python测试开发之调试print代码实例

      视频 | Python测试开发之调试print代码实例

      2025-04-09 09:16:42
      debug , log4j , logback , logging , python
      2025-04-09 09:16:42

      python简单介绍及基础知识(一)

      编程语言,是用来实现某种功能的编写给计算机读取和执行的语言

      2025-04-09 09:16:42
      print , python , 下划线 , 变量 , 变量名 , 编程语言 , 语言
      2025-04-09 09:16:00

      使用Python扩展PAM(part 2)

      在上篇part1 中编译的pam_python.so可以用Python代码进行一些额外的验证操作。动态密码,虚拟账号,都是可行的,只要编写的python鉴权脚本符合相应的PAM规范即可使用。

      2025-04-09 09:16:00
      python , 使用 , 密码 , 配置
      2025-04-09 09:13:27

      1行Python代码,把Excel转成PDF,python-office功能更新~

      1行Python代码,把Excel转成PDF,python-office功能更新~

      2025-04-09 09:13:27
      Excel , pdf , python , 代码 , 程序员
      2025-04-09 09:13:17

      python性能测试之pyperformance

      python性能测试之pyperformance

      2025-04-09 09:13:17
      json , python , Python , 性能 , 文档 , 测试
      2025-04-09 09:13:17

      IronPython 与 c# 交互之导入Python模块的两种方法

      当我们要在C#中调用python时,有时候需要用到python里的一些函数,比如进行一些数学运算,开方,取对数,这个时候我们需要用到python里的math模块(类似C#的命名空间,但概念不完全一样).

      2025-04-09 09:13:17
      python , 函数 , 导入 , 方法 , 模块
      2025-04-07 10:28:48

      一篇文章带你剖析Python 字节流处理神器struct

      一篇文章带你剖析Python 字节流处理神器struct

      2025-04-07 10:28:48
      python
      2025-04-07 10:28:48

      如何把一个python列表(有很多个元素)变成一个excel表格的第一列?

      如何把一个python列表(有很多个元素)变成一个excel表格的第一列?

      2025-04-07 10:28:48
      python , 数据
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5255946

      查看更多

      最新文章

      python打印宝塔代码

      2025-04-14 09:24:23

      python四种抽样方法的使用:随机抽样、聚类抽样、系统抽样、分层抽样

      2025-04-09 09:16:56

      python简单介绍及基础知识(一)

      2025-04-09 09:16:42

      视频 | Python测试开发之调试print代码实例

      2025-04-09 09:16:42

      使用Python扩展PAM(part 2)

      2025-04-09 09:16:00

      1行Python代码,把Excel转成PDF,python-office功能更新~

      2025-04-09 09:13:27

      查看更多

      热门文章

      Java学习之算术运算符两只老虎

      2023-04-19 09:23:13

      Linux实用命令authconfig和authconfig-tui(备忘)

      2023-03-16 07:49:58

      Python高级变量类型

      2024-09-24 06:30:08

      python学习——面向对象编程

      2023-04-25 10:20:57

      一个简单的http server,处理get和post请求,Python实现

      2023-04-13 09:31:09

      Python数据库测试实战教程

      2023-06-07 07:31:52

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      Python 处理表格进行成绩排序

      python ubuntu dlib 5 -人脸识别并打分

      C#使用 OpenXML SDK读取Excel文档

      python滚动的后推任意时点

      SQL防注入漏洞的方法

      Java 时间处理(格式解释、格式化时间、获取当前时间、获取年份、月份等、时间戳转换成时间)

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号