You need to enable JavaScript to run this app. Python依据corr与std_mev条件计算induc值无输出无报错问题求助
优惠活动
大模型
产品
解决方案
定价
更多

Python依据corr与std_mev条件计算induc值无输出无报错问题求助

问题原因

  • 打印语句缩进错误:你将induc系列值的打印逻辑全部放在了else分支的内部代码块中,只有当3个相关系数全部小于0.5、触发else分支时才会执行打印。其余任意if/elif分支匹配成功时,仅会完成induc系列变量的计算,不会执行打印操作,因此看不到对应输出。
  • 标准差打印笔误:现有代码中3行标准差打印语句的输出前缀均为Std MEV 1 = ,无法区分第二、第三个标准差的实际取值。

修复方案

将5行print语句的缩进减少一级,移到整个if-elif-else结构的外部,保证任意分支执行完成后都会触发打印;同时修正标准差打印的前缀内容。

修正后代码

import statistics
from scipy.stats import pearsonr

# 此处省略原有变量list_losses、list_mev1/list_mev2/list_mev3、std_mev1_list/std_mev2_list/std_mev3_list、cur_ls/on2_ls等变量的定义逻辑
corr1,_ = pearsonr(list_losses, list_mev1)
print('Pearsons correlation[loss and MEV1]: %.4f' % corr1)

corr2,_ = pearsonr(list_losses, list_mev2)
print('Pearsons correlation[loss and MEV2]: %.4f' % corr2)

corr3,_ = pearsonr(list_losses, list_mev3)
print('Pearsons correlation[loss and MEV3]: %.4f' % corr3)

### 计算标准差
std_mev1 = statistics.stdev(std_mev1_list)
std_mev2 = statistics.stdev(std_mev2_list)
std_mev3 = statistics.stdev(std_mev3_list)

print("Std MEV 1 = ",std_mev1)
print("Std MEV 2 = ",std_mev2)
print("Std MEV 3 = ",std_mev3)

if corr1>=0.5 and corr2>=0.5 and corr3>=0.5:
    induc_cur_ls = cur_ls*(1+std_mev1)*(1+std_mev2)*(1+std_mev3)
    induc_on2_ls = on2_ls*(1+std_mev1)*(1+std_mev2)*(1+std_mev3)
    induc_tt2_ls = tt2_ls*(1+std_mev1)*(1+std_mev2)*(1+std_mev3)
    induc_sx2_ls = sx2_ls*(1+std_mev1)*(1+std_mev2)*(1+std_mev3)
    induc_nn2_ls = nn2_ls*(1+std_mev1)*(1+std_mev2)*(1+std_mev3)
elif corr1>=0.5 and corr2>=0.5 and corr3<0.5:
    induc_cur_ls = cur_ls*(1+std_mev1)*(1+std_mev2)
    induc_on2_ls = on2_ls*(1+std_mev1)*(1+std_mev2)
    induc_tt2_ls = tt2_ls*(1+std_mev1)*(1+std_mev2)
    induc_sx2_ls = sx2_ls*(1+std_mev1)*(1+std_mev2)
    induc_nn2_ls = nn2_ls*(1+std_mev1)*(1+std_mev2)
elif corr1>=0.5 and corr3>=0.5 and corr2<0.5:
    induc_cur_ls = cur_ls*(1+std_mev1)*(1+std_mev3)
    induc_on2_ls = on2_ls*(1+std_mev1)*(1+std_mev3)
    induc_tt2_ls = tt2_ls*(1+std_mev1)*(1+std_mev3)
    induc_sx2_ls = sx2_ls*(1+std_mev1)*(1+std_mev3)
    induc_nn2_ls = nn2_ls*(1+std_mev1)*(1+std_mev3)
elif corr3>=0.5 and corr2>=0.5 and corr1<0.5:
    induc_cur_ls = cur_ls*(1+std_mev2)*(1+std_mev3)
    induc_on2_ls = on2_ls*(1+std_mev2)*(1+std_mev3)
    induc_tt2_ls = tt2_ls*(1+std_mev2)*(1+std_mev3)
    induc_sx2_ls = sx2_ls*(1+std_mev2)*(1+std_mev3)
    induc_nn2_ls = nn2_ls*(1+std_mev2)*(1+std_mev3)
elif corr1>=0.5 and corr2<0.5 and corr3<0.5:
    induc_cur_ls = cur_ls*(1+std_mev1)
    induc_on2_ls = on2_ls*(1+std_mev1)
    induc_tt2_ls = tt2_ls*(1+std_mev1)
    induc_sx2_ls = sx2_ls*(1+std_mev1)
    induc_nn2_ls = nn2_ls*(1+std_mev1)
elif corr2>=0.5 and corr1<0.5 and corr3<0.5:
    induc_cur_ls = cur_ls*(1+std_mev2)
    induc_on2_ls = on2_ls*(1+std_mev2)
    induc_tt2_ls = tt2_ls*(1+std_mev2)
    induc_sx2_ls = sx2_ls*(1+std_mev2)
    induc_nn2_ls = nn2_ls*(1+std_mev2)
elif corr3>=0.5 and corr1<0.5 and corr2<0.5:
    induc_cur_ls = cur_ls*(1+std_mev3)
    induc_on2_ls = on2_ls*(1+std_mev3)
    induc_tt2_ls = tt2_ls*(1+std_mev3)
    induc_sx2_ls = sx2_ls*(1+std_mev3)
    induc_nn2_ls = nn2_ls*(1+std_mev3)
else:
    induc_cur_ls = cur_ls
    induc_on2_ls = on2_ls
    induc_tt2_ls = tt2_ls
    induc_sx2_ls = sx2_ls
    induc_nn2_ls = nn2_ls

# 打印逻辑移到if结构外,所有分支执行完都会打印
print(induc_cur_ls)
print(induc_on2_ls)
print(induc_tt2_ls)
print(induc_sx2_ls)
print(induc_nn2_ls)

内容的提问来源于stack exchange,提问作者Julius Admire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 00:36:01