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

如何在Python中编写for循环批量处理m=0、1以生成目标输出?

问题描述

能否编写一个for循环,让下方代码自动生成m=0、1时的输出?目前我手动设置m=0和m=1运行代码,现将现有代码、当前输出及预期输出展示如下:

现有代码

import numpy as np

T2=[[0, 3, 5, 8, 9, 10, 11],[0, 2, 3, 5, 6, 8, 9, 10, 11]]

X=np.array([np.array([4.17551036e+02, 3.53856161e+02, 2.82754301e+02, 1.34119055e+02,
              6.34573886e+01, 2.08344718e+02, 1.00000000e-24])               ,
       np.array([4.17551036e+02, 3.32821605e+02, 2.94983702e+02, 2.78809292e+02,
              1.26991664e+02, 1.36026510e+02, 8.31512525e+01, 2.07329562e+02,
              1.00000000e-24])                                               ],
      dtype=object)

C1=0.0

index=0

m=0/1

for j in range(T2[m][-1]):
    if(j!=T2[m][index]):
        X[m] = np.insert(X[m], j, C1, axis=None)  
    else:
        index+=1
print([X[m]])

当前输出

m=0:

[array([4.17551036e+02, 0.00000000e+00, 0.00000000e+00, 3.53856161e+02,
       0.00000000e+00, 2.82754301e+02, 0.00000000e+00, 0.00000000e+00,
       1.34119055e+02, 6.34573886e+01, 2.08344718e+02, 1.00000000e-24])]

m=1:

[array([4.17551036e+02, 0.00000000e+00, 3.32821605e+02, 2.94983702e+02,
       0.00000000e+00, 2.78809292e+02, 1.26991664e+02, 0.00000000e+00,
       1.36026510e+02, 8.31512525e+01, 2.07329562e+02, 1.00000000e-24])]

预期输出

array([array([4.17551036e+02, 0.00000000e+00, 0.00000000e+00, 3.53856161e+02,
              0.00000000e+00, 2.82754301e+02, 0.00000000e+00, 0.00000000e+00,
              1.34119055e+02, 6.34573886e+01, 2.08344718e+02, 1.00000000e-24]),
       array([4.17551036e+02, 0.00000000e+00, 3.32821605e+02, 2.94983702e+02,
              0.00000000e+00, 2.78809292e+02, 1.26991664e+02, 0.00000000e+00,
              1.36026510e+02, 8.31512525e+01, 2.07329562e+02, 1.00000000e-24])                         ],dtype=object)
解决方案

在外层添加遍历m的循环,同时每次循环重置index变量(避免处理m=1时沿用m=0的index值导致逻辑错误),最后直接输出处理后的X数组即可——因为X本身就是dtype=object类型,输出格式完全匹配预期。

修改后的代码如下:

import numpy as np

T2=[[0, 3, 5, 8, 9, 10, 11],[0, 2, 3, 5, 6, 8, 9, 10, 11]]

X=np.array([np.array([4.17551036e+02, 3.53856161e+02, 2.82754301e+02, 1.34119055e+02,
              6.34573886e+01, 2.08344718e+02, 1.00000000e-24])               ,
       np.array([4.17551036e+02, 3.32821605e+02, 2.94983702e+02, 2.78809292e+02,
              1.26991664e+02, 1.36026510e+02, 8.31512525e+01, 2.07329562e+02,
              1.00000000e-24])                                               ],
      dtype=object)

C1=0.0

# 遍历m=0和m=1
for m in range(2):
    index=0  # 每次循环重置index
    for j in range(T2[m][-1]):
        if(j!=T2[m][index]):
            X[m] = np.insert(X[m], j, C1, axis=None)  
        else:
            index+=1

# 直接输出X,得到预期格式
print(X)

运行后输出将与预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 07:17:12