深入挖掘:Python中的Statsmodels库高级应用

2023-12-19

写在开头

随着数据科学的发展,解决更为复杂问题的关键往往在于深入了解数据并采用更高级的分析工具。本文将带您深入探讨Python中的Statsmodels库,并引入一些高级功能,为更深入的数据挖掘奠定基础。

1 方差分析

1.1 方差分析概念

方差分析(Analysis of Variance,ANOVA)是一种统计方法,用于比较两个或更多组之间的均值差异是否显著。它将总体的方差分解为组内方差和组间方差,通过比较这两种方差的大小,判断组别之间是否存在显著差异。方差分析的基本思想是将总体方差分解为不同来源的方差,为组内方差和组间方差,通过比较这两种方差的大小,来判断组别间是否存在显著性差异。

解决问题

  • 比较多个组的均值是否有显著差异: 方差分析能够判断不同组别之间的平均值是否有显著差异。

  • 确认影响因素: 当研究中有一个自变量(例如产品类型、治疗方法)对一个因变量(例如销售额、疗效)产生影响时,方差分析可以帮助确定这种影响是否显著。

  • 探索交互效应: 可以通过方差分析来探讨多个因素对因变量的交互作用,即它们是否共同影响因变量。

适合场景:

  1. 实验设计: 当研究中有多个实验组时,方差分析可用于检验这些组别是否有显著差异。例如,药物的疗效试验,不同广告对销售的影响等。

  2. 质量控制: 在生产过程中,方差分析可用于检测不同批次或生产线的产品是否存在质量差异。

  3. 教育研究: 在教育领域,方差分析可用于比较不同教学方法或不同学校之间学生成绩的差异。

  4. 社会科学研究: 在社会科学中,方差分析可以用于分析不同群体之间的差异,例如不同职业群体的薪资水平。

方差分析是一种强大的工具,但要注意确保数据满足方差分析的前提条件,如正态性和方差齐性。在实际应用中,正确选择适当的统计方法和工具对于得出可靠的结论至关重要。


1.2 利用Statsmodels进行方差分析

假设这样一个场景:我们在研究了不同广告渠道(电视广告、社交媒体广告、搜索引擎广告)对某个产品的销售影响。我们希望通过方差分析确定这些广告渠道是否在产品销售上产生显著影响。下面是使用Statsmodels进行方差分析的过程。

import pandas as pd
import statsmodels.api as sm
from statsmodels.formula.api import ols
import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np

# 设置随机种子以确保可复现性
np.random.seed(12)

# 生成模拟数据
data = pd.DataFrame({
    'Advertising_Channel': np.repeat(['TV', 'Social Media', 'Search Engine'], 30),
    'Sales': np.concatenate([np.random.normal(1000, 150, 30),
                             np.random.normal(1200, 100, 30),
                             np.random.normal(800, 120, 30)])
})

# 可视化数据分布
plt.figure(figsize=(10, 6))
sns.boxplot(x='Advertising_Channel', y='Sales', data=data)
plt.title('Sales Distribution by Advertising Channel')
plt.show()


# 进行方差分析
model = ols('Sales ~ Advertising_Channel', data=data).fit()
anova_table = sm.stats.anova_lm(model, typ=2)

# 打印ANOVA结果
print(anova_table)

运行上述代码后,结果如下:
1.1

根据运行结果,可以得出下面的结论:

  • Advertising_Channel行:

    • sum_sq :Advertising_Channel组间的平方和(组间方差)。在这个例子中,值为2.497287e+06。
    • df :自由度(degrees of freedom),表示组间变化的自由度。对于Advertising_Channel,自由度为2。
    • F :F统计量,用于判断组间方差是否显著大于组内方差。在这里,F统计量为64.367022。
    • PR(>F) :p值,表示观察到的F统计量的概率。在这个例子中,p值非常接近零(6.976292e-18),表明组间方差显著大于组内方差。
  • Residual行:

    • sum_sq :残差的平方和(组内方差)。在这个例子中,值为1.687697e+06。
    • df :残差的自由度,表示组内变化的自由度。在这里,自由度为87。
    • F :由于组内方差为0,所以F统计量为NaN(Not a Number)。
    • PR(>F) :由于组内方差为0,所以p值为NaN。
  • PR(>F) 值接近零,表示Advertising_Channel对Sales的影响在统计学上是显著的。即不同广告渠道对产品销售产生了显著影响。

  • 组间方差显著大于组内方差,这表明不同广告渠道之间的差异比组内差异更显著。

根据上方的结果,选择不同广告渠道确实会对产品销售产生显著影响。在实际场景中,可用于:

  • 广告预算分配: 根据不同广告渠道对销售的影响,可以合理分配广告预算,以最大程度地提高销售效果。

  • 广告策略调整: 结果表明某些广告渠道可能更有效,因此可以调整广告策略,加大对这些渠道的投放。

  • 市场定位: 了解不同广告渠道对销售的影响,有助于更好地理解目标市场,从而更有针对性地开展市场定位和推广活动。


2 主成分分析(PCA)

Stasmodels中没有直接提供主成分分析(PCA)的实现,我们常常会用scikit-learn库进行主成分分析,并使用statsmodels库进行线性回归,用于查看主成分与变量之间的效果。

2.1 主成分分析基本介绍

主成分分析(Principal Component Analysis,PCA)是一种常用的多变量数据分析方法,其目标是通过线性变换将原始数据转换为一组新的互相正交的变量,即主成分。这些主成分是原始变量的线性组合,按照方差递减的顺序排列。主成分分析的核心思想是通过保留数据中的主要信息,实现数据降维和去相关。

2.1.1 适用数据类型

主成分分析适用于以下类型的数据:

  • 高维数据: 主成分分析通常用于处理高维数据,即变量数量多于样本数量的情况。

  • 连续型数据: PCA对于连续型数据效果更好,因为它依赖于协方差矩阵的计算。

  • 线性关系: PCA假设数据是线性相关的,因此对于非线性关系的数据,PCA可能不是最佳选择。

2.1.2 能解决的问题

  1. 降维: 主成分分析最常见的应用之一是数据降维。通过保留主要信息,可以将高维数据集降至较低维度,减少冗余信息,提高计算效率,同时保持数据的主要特征。

  2. 去相关: 主成分分析能够将原始变量投影到无关的主成分上,从而去除数据中的相关性。

  3. 特征提取: PCA可用于提取数据中最具代表性的特征,这些特征通常对数据变异性贡献较大。

  4. 数据可视化: 通过将数据投影到较低维度,可以更容易地可视化数据,观察数据的结构和模式。

  5. 噪声过滤: 通过保留主成分中方差较大的部分,可以过滤掉数据中的噪声。

2.1.3 适合的场景

  1. 多变量数据分析: 当涉及到多个相关变量时,PCA可以帮助简化数据结构,提取主要特征。

  2. 数据探索: 主成分分析常用于数据探索阶段,帮助了解数据的内在结构和关系。

  3. 模式识别: 在模式识别和机器学习中,PCA常用于降维以减少计算负担和提高模型性能。

  4. 图像处理: 在图像处理领域,PCA可以用于图像压缩和特征提取。

  5. 金融领域: 在金融数据分析中,PCA可用于处理多维的金融指标,提取影响最大的因子。

2.1.4 实现过程

主成分分析(PCA)的实现过程可以简单概括为以下几个步骤:

  1. 标准化数据: 将原始数据进行标准化,使得每个变量都有相同的尺度。

  2. 计算协方差矩阵: 计算标准化后的变量之间的协方差矩阵。

  3. 计算特征值和特征向量: 对协方差矩阵进行特征值分解,得到特征值和对应的特征向量。

  4. 选择主成分: 按照特征值的大小,选择其中最大的k个特征值对应的特征向量作为主成分。一般情况下,可以根据累计方差贡献率来确定主成分的数量。

  5. 构建新的数据集: 将原始数据投影到选定的主成分上,得到新的主成分数据集。

2.1.5 实现的相关公式

  1. 标准化数据:
    Standardized Data = X − X ˉ σ \text{Standardized Data} = \frac{ {X - \bar{X}}}{ {\sigma}} Standardized Data = σ X X ˉ
    其中, X X X 是原始数据, X ˉ \bar{X} X ˉ 是均值, σ \sigma σ 是标准差。

  2. 协方差矩阵:
    Covariance Matrix (C) = 1 n − 1 ( X T ⋅ X ) \text{Covariance Matrix (C)} = \frac{1}{n-1}(X^T \cdot X) Covariance Matrix (C) = n 1 1 ( X T X )
    其中, X T X^T X T 是数据矩阵的转置。

  3. 特征值分解:
    将协方差矩阵 C C C 进行特征值分解:
    C = P Λ P − 1 C = P \Lambda P^{-1} C = P Λ P 1
    其中, P P P 是特征向量矩阵, Λ \Lambda Λ 是对角矩阵,对角线上的元素是特征值。

  4. 选择主成分:
    选择前k个最大的特征值对应的特征向量,构成主成分矩阵 P k P_k P k

  5. 构建新的数据集:
    Transformed Data = X ⋅ P k \text{Transformed Data} = X \cdot P_k Transformed Data = X P k

2.2 一个例子

假设现在有一份包含房屋面积(Area)、房间数(Rooms)、浴室数(Bathrooms)和售价(Price)的数据集,我们需要利用主成分分析(PCA)来降维并了解哪些特征对房价的影响最大。具体的实现步骤如下:

import pandas as pd
import numpy as np
from sklearn.decomposition import PCA
import statsmodels.api as sm

# 准备数据
np.random.seed(12)
data = pd.DataFrame({
    'Area': np.random.normal(100, 20, 100),
    'Rooms': np.random.normal(3, 1, 100),
    'Bathrooms': np.random.normal(2, 0.5, 100),
    'Price': np.random.normal(50000, 100000, 100)
})

# 进行主成分分析
features = ['Area', 'Rooms', 'Bathrooms']
X = data[features]

pca = PCA(n_components=2)
principal_components = pca.fit_transform(X)

# 将主成分添加到数据框中
data['PC1'] = principal_components[:, 0]
data['PC2'] = principal_components[:, 1]

# 利用主成分进行线性回归(使用statsmodels)
X_pca = sm.add_constant(data[['PC1', 'PC2']])
model = sm.OLS(data['Price'], X_pca).fit()

# 打印回归结果
print(model.summary())

运行上方的代码后,结果如下:
2.2.1

从上述运行结果中,我们可以得出以下信息:

  1. R-squared ( R 2 R^2 R 2 ):

    • R 2 R^2 R 2 表示模型对目标变量变异性的解释程度。在这个模型中, R 2 R^2 R 2 为0.012,说明模型只能解释因变量变异性的1.2%。
  2. Adj. R-squared (调整 R 2 R^2 R 2 ):

    • 调整 R 2 R^2 R 2 考虑了模型中使用的自变量的数量。在这个模型中,调整 R 2 R^2 R 2 为-0.008。
  3. F-statistic:

    • F-statistic 衡量模型整体的显著性。在这个模型中,F-statistic为0.5836,对应的 p-value 为0.560。p-value大于通常的显著性水平,表明模型整体并不显著。
  4. 系数(coef):

    • const 代表截距,PC1 和 PC2 是主成分的系数。
    • 对于 const,系数为6.222e+04,表示当主成分为0时,房价的估计值为6.222e+04。
    • 对于 PC1,系数为-311.2484,表示每单位 PC1 的增加,房价估计减少311.25。
    • 对于 PC2,系数为6152.9651,表示每单位 PC2 的增加,房价估计增加6152.97。
  5. P>|t|:

    • P-value 衡量系数的显著性。在这个模型中,const 的 p-value 小于0.05,而 PC1 和 PC2 的 p-value 都大于0.05,表明只有截距是显著的。
  6. Omnibus、Prob(Omnibus)、Jarque-Bera (JB)、Skew、Kurtosis:

    • 这些统计量用于检验模型的正态性假设。在这个模型中,它们的p-value都较大,表明残差可能符合正态分布。
  7. Durbin-Watson:

    • Durbin-Watson 统计量用于检验模型中残差之间的自相关性。在这个模型中,Durbin-Watson为1.811,接近2,暗示着残差可能没有显著的自相关性。
  8. Cond. No.:

    • Condition Number 是用于检验模型中矩阵条件的指标。在这个模型中,Condition Number为20.9。

得出结论:

  • 模型拟合程度: R 2 R^2 R 2 很低,表明模型对于解释房价的变异性非常有限。这可能暗示主成分的选择或者主成分本身无法很好地解释房价。
  • 主成分的显著性 :除了截距(const)之外,主成分 PC1 和 PC2 对于解释房价的变异性不显著。这可能表明选取的主成分无法很好地捕捉房价的关键变化。
  • 模型整体显著性: F-statistic 的 p-value较大,表明整个模型并不显著。这可能意味着我们需要重新考虑模型中的变量选择或者引入其他变量。

总体而言,这个模型并没有很好地拟合数据,对于房价的解释能力非常有限。可能需要考虑重新选择主成分,增加模型中的变量,或者使用其他方法来提高模型的拟合能力。

通过主成分分析,我们可以发现哪些房屋特征对于解释房价的变异性最为重要。线性回归的结果可以帮助我们理解每个主成分与房价之间的关系,从而指导我们在实际场景中作出更加合理的房价预测或定价策略。这个例子是为了演示主成分分析的基本流程和应用,实际场景中需要更多的数据预处理、模型选择和评估。


3 生存分析

3.1 生存分析的基本概念

3.1.1 生存分析的来源

生存分析(Survival Analysis)是一种用于研究个体在一段时间内经历特定事件(如死亡、失败、损坏)的统计方法。该方法最初在医学领域中被广泛应用,但后来扩展到其他领域,如工程学、社会科学和金融领域。

3.1.2 适用数据类型

  1. 右侧截尾数据: 生存分析通常应用于右侧截尾的数据,其中观察时间有限,因此事件可能在观察期内发生,也可能未发生。

  2. Censoring(截尾): 当观察结束时,个体尚未经历事件,数据就会被截尾。生存分析需要考虑这种截尾情况,以准确估计生存概率。

3.1.3 解决问题

  • 事件时间分布: 生存分析可以用来估计个体经历特定事件的时间分布,例如生命终点、产品故障等。

  • 比较生存曲线: 生存分析允许比较不同群体、治疗组和对照组的生存曲线,以评估干预措施的效果。

  • 危险因素: 生存分析可以识别和量化影响生存时间的危险因素,这些危险因素可以是疾病特征、治疗方案或其他相关因素。

  • 时间相关性: 生存分析考虑了时间的因素,可以更全面地理解事件发生的时间模式和动态。

3.1.4 适用场景

  • 医学研究: 评估治疗效果、疾病复发的概率,研究患者的生存时间等。

  • 金融领域: 评估投资产品的寿命,了解客户的生命周期价值。

  • 工业工程: 估计设备或系统的可靠性,预测设备故障的发生时间。

  • 社会科学: 研究社会现象,如婚姻的持续时间、雇佣关系的稳定性等。

  • 公共卫生: 研究疾病的流行病学特征,制定公共卫生政策。

3.1.5 生存分析方法

  • Kaplan-Meier 生存曲线: 用于估计未经历事件的个体在给定时间点上的生存概率。

  • Cox 比例风险模型: 用于探讨不同因素对生存时间的影响,考虑多个协变量。

  • Log-Rank 检验: 用于比较两个或多个生存曲线是否存在显著差异。

  • 加速失效时间模型(Accelerated Failure Time Model): 用于描述因素如何影响生存时间的缩短或延长。

总体而言,生存分析对于研究个体在一段时间内经历事件的时间模式提供了强大的工具,适用于多个领域中的时间相关性问题。

3.2 生存分析的应用

生存分析常用于处理时间相关数据,例如医学研究中的患者生存时间。以下是一个简单的生存分析示例, 事件 (Event) 表示客户是否在观察期间发生了订购(1 表示发生,0 表示未发生)。

import pandas as pd
import numpy as np
import statsmodels.api as sm
import matplotlib.pyplot as plt

# 设置随机种子
np.random.seed(123)

# 客户数据
customer_data = pd.DataFrame({
    'Customer_ID': range(1, 101),
    'First_Order': np.random.randint(1, 180, size=100),
    'Last_Order': np.random.randint(180, 360, size=100),
})

# 计算生存时间和事件状态
customer_data['Survival_Time'] = customer_data['Last_Order'] - customer_data['First_Order']
customer_data['Event'] = np.random.choice([0, 1], size=100, p=[0.2, 0.8])

# 创建SurvfuncRight对象
sf = sm.SurvfuncRight(customer_data['Survival_Time'], customer_data['Event'])

# 生存函数摘要
summary = sf.summary()
# 输出结果
print(summary)

# 使用SurvfuncRight对象进行生存曲线绘制
sf.plot()

# 设置图形属性
plt.title('Survival Curve')
plt.xlabel('Time')
plt.ylabel('Survival Probability')
plt.show()

运行上述结果后,我们可以得到下图的运行结果:
3.2.1
3.2.2
从上述生存分析的结果,获取到在不同时间点上的生存概率、标准误差、样本量和事件数量等信息。我们可以得到下面的信息:

  • Surv prob (Survival Probability):

    • 在时间点 22,生存概率为 0.99,表示在这个时间点前,有 99% 的客户仍然保持活跃状态。
    • 随着时间推移,生存概率逐渐下降。
  • Surv prob SE (Survival Probability Standard Error):

    • 标准误差表示相应生存概率的估计不确定性。标准误差越小,估计的生存概率越可信。
    • 在所有时间点上,标准误差都在逐渐增加,因为样本量在减小。
  • num at risk (Number at Risk):

    • 表示在给定时间点上参与生存分析的客户数量。在初始时间点 22,所有100名客户都参与了分析。
    • 随着时间的推移,客户数量逐渐减少,因为部分客户发生了事件(生命周期结束)。
  • num events (Number of Events):

    • 在给定时间点上发生事件的客户数量。在所有时间点上,每个时间点都有一个事件发生。

这个生存分析的结果表明,客户在初始时段具有较高的生存概率,但随着时间推移,生存概率逐渐下降。在观察的时间范围内,所有客户最终都发生了事件,生命周期结束。标准误差的增加可能表示由于样本量的减少,生存概率的估计不确定性增加。另外,通过下面这条曲线更直观地了解客户在不同时间点上的生存情况。曲线下降越快,说明生存概率下降得越迅速。

写在最后

通过深入挖掘Statsmodels库的高级功能,我们不仅能够更全面、更精确地理解数据,还能为解决更为复杂的问题建模提供坚实基础。无论是探索数据结构、进行降维分析,还是研究事件发生的概率,Statsmodels都为高级数据分析提供了可靠的支持。让我们在实际场景中应用这些强大工具,通过数据和代码来发现更多有趣的现象,为未来的数据科学探索打下坚实的基础。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深入挖掘:Python中的Statsmodels库高级应用 的相关文章

  • “扩展”numpy ndarray 的好方法?

    有没有 扩展 numpy ndarray 的好方法 假设我有一个像这样的 ndarray 1 2 3 4 我希望每行通过填充零来包含更多元素 1 2 0 0 0 3 4 0 0 0 我知道一定有一些蛮力的方法可以做到这一点 比如构造一个带有
  • Tastypie 与 application/x-www-form-urlencoded

    我有点难以弄清楚下一步应该做什么 我正在使用 tastypie 为我的 Web 应用程序创建 API 从另一个应用程序 特别是 ifbyphone com 我收到一个没有标题的 POST 如下所示 post data http myapp
  • Redis - 错误:值不是有效的浮点数

    我在 Redis 中有一个排序集 我试图通过在Python代码中使用zincrby来更新特定元素的计数器值 例如 conn zincrby usersSet float 1 user1 但它显示错误为 错误 值不是有效的浮点数 我在 cli
  • 不能在jinja2宏中使用current_user?

    我使用 Flask Login 它提供了current user模板中的对象 我想编写一个宏来显示评论表单或登录链接 具体取决于用户是否登录 如果我直接在模板中使用此代码 它会起作用 if current user is authentic
  • 如何使用 python 从嵌套表结构中识别最终父级?

    我有下表 我的问题是 我如何以编程方式识别最终父级 以下是通过示例解释的规则 the id 5 0的父母是51 0 身份证号51 0没有父母 因此 id5 0的最终父级是51 0 the id 6 0的父母是1 0 身份证号1 0的父母是1
  • pandas python 根据一个或多个其他列的子集更新 A 列的子集

    Edit我修改了下面的部分描述 以澄清 功能 和 组 的含义 修复拼写错误 并包含我尝试过的其他代码 我的熊猫df有 450 万行和 23 列 下表显示了几行df2这是从生成的df 它显示了两组 eeskin and hduquant 和三
  • 我无法使用 Python 和 Facebook Marketing API 获取所有 Facebook 营销活动的统计信息

    我正在尝试检索以下指标 date campaign name impressions clicks spend 在我的 Facebook 帐户中的所有活动中 但显然我编写的脚本仅返回某些活动的统计数据 而不是全部 它仅返回大多数营销活动的营
  • 尽管 ioff() 和 matplotlib.use('Agg'),Pyplot“无法连接到 X 服务器 localhost:10.0”

    我有一段代码 它被不同的函数调用 为我执行一些计算 然后将输出绘制到文件中 鉴于整个脚本可能需要一段时间才能运行更大的数据集 并且由于我可能想在给定时间分析多个数据集 所以我开始它screen然后断开连接并关闭我的腻子会话 并在第二天再检查
  • 使用opencv+picamera流IO用树莓派捕获视频

    我使用 Raspberry 来简单地显示一个视频 目前仅此 为此 我必须使用 opencv cv2 我尝试了很多解决方案 但现在我想使用 Picamera 库捕获视频 我将向您展示我的代码 import io import time imp
  • 如何解决错误 EGL 驱动程序消息(错误)eglQueryDeviceAttribEXT:使用 Selenium 和 Python 的错误属性

    我从 selenium 收到随机错误消息 即使它们都与我正在运行的确切 Web 驱动程序命令无关 据我所知 此错误不会中断程序 它只是添加不需要的警报 使我的打印件难以阅读 Chrome 版本 75 0 3770 100 官方版本 64 位
  • 自定义信号的声明

    在 Qt 中 我们可以通过将自定义信号设为静态变量来创建它们 然后我们使用self signame反而classname signame 这样就在类中创建了一个实例变量 我想了解这种模式之外的理论 这是我尝试过的一些伪代码 这些伪代码已记录
  • 如何对嵌套函数进行单元测试? [复制]

    这个问题在这里已经有答案了 您将如何对嵌套函数进行单元测试f1 在下面的例子中 def f def f1 return 1 return 2 或者需要测试的函数不应该嵌套吗 有一个类似的问题这个链接 https stackoverflow
  • 将 Python 控制台集成到 GUI C++ 应用程序中

    I m going to add a python console widget into a C GUI below some other controls 许多类将暴露给 python 代码 包括一些对 GUI 的访问 也许我会考虑 P
  • 将多个 isinstance 检查转换为结构模式匹配

    我想转换此现有代码以使用模式匹配 if isinstance x int pass elif isinstance x str x int x elif isinstance x float Decimal x round x else r
  • python 和 android 中通过 AES 算法加密和解密

    我有用于 AES 加密的 python 和 android 代码 当我在android中加密文本时 它在python上成功解密 但无法在android端解密 有人有想法吗 Python代码 import base64 import hash
  • Mac 上的 Errno 13 权限被拒绝

    我只是测试如何从一个 py 文件调用外部 py 文件 我有 2 个 py 文件 都在同一目录中 这是主要代码 runext py 假设调用 ext py import subprocess subprocess call Users tra
  • Celery 设计帮助:如何防止并发执行任务

    我对 Celery AMQP 相当陌生 正在尝试提出一个任务 队列 工作人员设计来满足以下要求 我有多种类型的 每用户 任务 例如 TaskA TaskB TaskC 这些 每用户 任务中的每一个都为系统中的一个特定用户读取 写入数据 因此
  • python 中的异步编程

    python 中有异步编程的通用概念吗 我可以为一个函数分配一个回调 执行它并立即返回主程序流 无论该函数的执行需要多长时间吗 您所描述的 主程序流程在另一个函数执行时立即恢复 不是通常所说的 异步 又名 事件驱动 编程 而是 多任务 又名
  • Python:如何使用生成器来避免 sql 内存问题

    我有以下方法来访问 mysql 数据库 并且查询在服务器中执行 我无权更改有关增加内存的任何内容 我对生成器很陌生 并开始阅读更多有关它的内容 并认为我可以将其转换为使用生成器 def getUNames self globalUserQu
  • 为什么 Python exec 中的模块级变量无法访问?

    我正在尝试使用Pythonexec in a project https github com arjungmenon pypage执行嵌入的Python代码 我遇到的问题是在模块级 in an exec声明是难以接近的来自同一模块中定义的

随机推荐

  • 移动端界面布局适配方案

    自适应和响应式 1 自适应 根据不同的设备大小来自动调整尺寸 大小 2 响应式 会随着屏幕的实时变动而自动调整 是一种自适应 移动端视口 能看到的区域就是视口 viewport fixed就是相对于视口来进行定位的 在PC端视口就只有一个
  • 基于SpringBoot+Vue的智慧校园之家长子系统设计实现(源码+lw+部署文档+讲解等)

    文章目录 前言 详细视频演示 具体实现截图 技术栈 后端框架SpringBoot 前端框架Vue 持久层框架MyBaitsPlus 系统测试 系统测试目的
  • MSDN:Mutually Semantic Distillation Network for Zero-Shot Learning 中文版 待更新

    摘要 零样本学习 ZSL 的关键挑战是如何将潜在的语义知识融合在可见类的视觉特征和抽象特征之间 从而实现向不可见类的横向知识转移 之前的工作要么只是将图像的全局特征与其相关的类语义向量对齐 要么利用单向注意力来学习有限的潜在语义表示 这无法
  • Vue 大文件上传和断点续传的实现

    实现 Vue 大文件上传和断点续传需要掌握以下几个步骤 分片 将大文件分割成若干个小块 便于上传 一般采用 Blob 对象或 ArrayBuffer 来实现 上传 将分片文件上传到服务器 可以使用 XMLHttpRequest Fetch
  • 63.基于Oracle19.14的PDB的静默安装

    1 dbca rsp文件准备 vi dbca rsp responseFileVersion oracle assistants rspfmt dbca response schema v19 0 0 gdbName CROSS sid C
  • Day01 【苍穹外卖】环境搭建和前后端联调

    文章目录 一 苍穹外卖简介 二 项目联调和配置 1 前端web界面 2 前后端联调实现登录 3 反向代理配置 4 负载均衡
  • Linux中ll -h和du -h 查看的文件大小,同一个文件du -h的结果大很多

    当使用 ll h 和 du h 查看同一个文件的大小时 可能会看到两者的结果不同 这是因为它们 计算文件大小的方式有所不同 ll h 的结果 ll h 或其完整形式 ls lh 会显示文件的大小 但这个大小可能只是文件内容的实际大小 并不包
  • 使用AI大模型给黑白照片上色

    在线体验 点击 图像处理 即可使用 private static final String COLOURIZE URL https aip baidubce com rest 2 0 image process v1 colourize p
  • 【Linux基础】2. Linux系统目录结构

    文章目录 ls 命令查看Linux系统目录 目录名称 作用 bin binaries二进制文件 是系统预设的执行文件的放置目录 这个目录存放着最经常使用的命令 boot boot 启动 这里存放的是启动 Linux 时使用的一些核心文件 包
  • python基础语法总结

    基础是深入必不可少的 如果没有基础的支持 后面都是浮云 就像情侣之间 没有感情基础是不会有好结果的 物资基础是靠两个人打拼的 所以学习就像谈恋爱 两个人要学会沟通 才能修成正果 一句话就是有话可说 目录概览 字面量 注释 变量 数据类型
  • Java爬虫采集房源信息解决朋友店铺选址难题

    昨天我帮朋友选择了适合的开店种类 今天同样的 利用爬虫技术采集店铺房源信息 为朋友店铺开店选址提供一份建议 数据筛查只是作为信息整理的一部分 重要的还是要看地点人流量还需要实地考察才行 我的数据只是做参考 废话不多说 连夜码出下列代码 以下
  • 专业、好用的跨网文件摆渡产品,需要具备哪些功能特性?

    为了确保内部核心资产的安全性 很多企业和机构都会选择将网络进行隔离划分 比如内外网隔离 办公网 研发网隔离等 但网络隔离后 在日常工作中 仍存在用户需求把文件数据从内网到外网 从办公网到研发网终端的文件摆渡业务需求 很多企业都会使用一些传输
  • 【XR806开发板试用】基于FreeRtos的XR806 WLAN测试

    作为一名在车机嵌入式耕耘多年的嵌入式工程师 此前我从未接触过蓝牙和无线相关的开发工作 前段时间参与了全志的开发板适用活动 幸运地被免费开发板砸中 到手发现这个板子具有蓝牙5 0和WLAN功能 兴奋之余立马尝试了一下 开发环境的搭建 受工作环
  • 说说 Dubbo 与 Spring Cloud 的区别?

    Dubbo 和 Spring Cloud 都是流行的分布式服务框架 但它们在设计和使用上有一些不同之处 以下是它们之间的一些主要区别 开发语言 Dubbo 主要基于 Java 而 Spring Cloud 是基于 Spring Boot 的
  • 第二部分相移干涉术

    典型干涉图 相移干涉术 相移干涉术的优点 1 测量精度高 gt 1 1000 条纹 边缘跟踪仅为 1 10 边缘 2 快速测量 3 低对比度条纹测量结果良好 4 测量结果不受瞳孔间强度变化的影响 独立于整个瞳孔的强度变化 5 在固定网格点获
  • centos开机自启动实战小案例

    1 编写一个我们需要做事的脚本 bin bash 打印 Hello echo Hello Mr Phor 为了更好的能看到效果 我们把这段文本放置到一个文件中 如果重启能够看到 a txt文件 我们实验成功 echo hahahahahah
  • C++ 字符串中最长的连续出现的字符

    采用双指针思想 include
  • 什么是SpringCloud

    SpringCloud是一个基于Spring Boot的开源框架 它可以帮助开发者快速搭建分布式系统 包括服务注册与发现 配置管理 负载均衡 容错处理等能力 SpringCloud提供了统一的开发接口 使得开发者可以自由选择不同的服务提供者
  • DHCP服务详解

    DHCP Dynamic Host Configuration Protocol 动态主机配置协议 是一种网络协议 用于自动分配IP地址 子网掩码 默认网关 DNS服务器等网络参数给连接到网络的设备 这个过程主要包括四个步骤 DHCP Di
  • 深入挖掘:Python中的Statsmodels库高级应用

    写在开头 随着数据科学的发展 解决更为复杂问题的关键往往在于深入了解数据并采用更高级的分析工具 本文将带您深入探讨Python中的Statsmodels库 并引入一些高级功能 为更深入的数据挖掘奠定基础 1 方差分析 1 1 方差分析概念