You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python检测数组零值 按阈值同步中点翻转df[0]与df[1]

数组同步翻转处理方案

初始数组定义

df[0] = [0.0000000,0.0082707,0.0132000, 0.0255597, 0.0503554, 0.0751941, 0.1000570, 0.1498328, 0.1996558, 0.2495240, 0.2994312, 0.3993490, 0.4993711, 0.5994664, 0.6996058, 0.7997553, 0.8998927, 0.9499514, 1.0000000, 0.0000000, 0.006114, 0.0062188, 0.0087532, 0.0138088, 0.0264052, 0.0515127, 0.0765762, 0.1016176, 0.1516652, 0.2016828, 0.2516733, 0.3016387, 0.4015163, 0.5013438, 0.6011363, 0.7008976, 0.8006328, 0.9003380, 0.9501740, 1.0000000]
df[1] = [0.0000000, 0.0233088, 0.0298517, 0.0425630, 0.0603942, 0.0739301, 0.0850687, 0.1023515, 0.1149395, 0.1230325, 0.1272298, 0.1253360, 0.1130538, 0.0934796, 0.0695104, 0.0445423, 0.0207728, 0.0098870, 0.0000000, 0.0000000, -.0208973, -.0210669, -.0247377, -.0307807, -.0416431, -.0548774, -.0637165, -.0703581, -.0801452, -.0869356, -.0910290, -.0926252, -.0905235, -.0834273, -.0728351, -.0591463, -.0428603, -.0235778, -.0122883, 0.0000000]

需求规则

  • 统计df[0]中的零值数量,触发阈值为3个及以上零值,满足条件时从数组中点位置拆分,对后半段数组执行翻转操作,df[0]翻转后需匹配给定的目标结果
  • df[1]需和df[0]保持位置对应关系,按照相同的翻转规则同步处理

目标df[0]结果:

df[0]  = [0.0000000,0.0082707,0.0132000, 0.0255597, 0.0503554, 0.0751941, 0.1000570, 0.1498328, 0.1996558, 0.2495240, 0.2994312, 0.3993490, 0.4993711, 0.5994664, 0.6996058, 0.7997553, 0.8998927, 0.9499514, 1.0000000, 1.0000000, 0.950174, 0.900338,  0.8006328, 0.7008976, 0.6011363, 0.5013438, 0.4015163, 0.3016387, 0.2516733, 0.2016828, 0.1516652, 0.1016176, 0.0765762, 0.0515127, 0.0264052, 0.0138088, 0.0087532 ,0.0062188, 0.006114,  0.0000000]

实现代码

# 初始化数组
df = [
    [0.0000000,0.0082707,0.0132000, 0.0255597, 0.0503554, 0.0751941, 0.1000570, 0.1498328, 0.1996558, 0.2495240, 0.2994312, 0.3993490, 0.4993711, 0.5994664, 0.6996058, 0.7997553, 0.8998927, 0.9499514, 1.0000000, 0.0000000, 0.006114, 0.0062188, 0.0087532, 0.0138088, 0.0264052, 0.0515127, 0.0765762, 0.1016176, 0.1516652, 0.2016828, 0.2516733, 0.3016387, 0.4015163, 0.5013438, 0.6011363, 0.7008976, 0.8006328, 0.9003380, 0.9501740, 1.0000000],
    [0.0000000, 0.0233088, 0.0298517, 0.0425630, 0.0603942, 0.0739301, 0.0850687, 0.1023515, 0.1149395, 0.1230325, 0.1272298, 0.1253360, 0.1130538, 0.0934796, 0.0695104, 0.0445423, 0.0207728, 0.0098870, 0.0000000, 0.0000000, -.0208973, -.0210669, -.0247377, -.0307807, -.0416431, -.0548774, -.0637165, -.0703581, -.0801452, -.0869356, -.0910290, -.0926252, -.0905235, -.0834273, -.0728351, -.0591463, -.0428603, -.0235778, -.0122883, 0.0000000]
]

# 配置参数
ZERO_TRIGGER_THRESHOLD = 3
array_length = len(df[0])
mid_index = array_length // 2  # 本示例数组长度为40,中点索引为20

# 统计df[0]零值数量
zero_count = 0
for val in df[0]:
    if val == 0.0:
        zero_count += 1

# 满足阈值则执行翻转
if zero_count >= ZERO_TRIGGER_THRESHOLD:
    for idx in range(len(df)):
        front = df[idx][:mid_index]
        reversed_back = df[idx][mid_index:][::-1]
        df[idx] = front + reversed_back

代码运行后,df[0]会完全匹配给出的目标结果,df[1]也会同步完成对应位置的翻转,两个数组的索引对应关系不会错乱。

内容的提问来源于stack exchange,提问作者John Chae

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:31:15