You need to enable JavaScript to run this app. Python中如何实现for循环遍历数组B生成统一输出数组
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何实现for循环遍历数组B生成统一输出数组

Python循环实现批量计算ENU结果

首先补全依赖导入,并且去重你代码中重复定义的B、C变量:

import numpy as np

C = [0, 0, 2, 1, 1, 8, 3, 6, 6, 7, 11, 8, 10, 23,22, 12, 15, 34, 16, 9, 11, 6, 0, 0]
B = np.array([500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500,5000, 5500, 6000, 6500, 7000, 7500, 8000, 8500, 9000,9500, 10000, 10500, 11000, 11500, 12000])
C_arr = np.array(C)

for循环实现方案

你原代码里ENU_1对应阈值500、ENU_2对应阈值1000,规律为阈值每次递增500,所有计算结果合并为单个数组的实现如下:

# 定义所有要计算的阈值,和示例步长保持一致
thresholds = np.arange(500, 12500, 500)
# 初始化结果数组,形状为【阈值数量 × 数组长度】
enu_result = np.zeros((len(thresholds), len(B)))

# 循环批量计算
for idx, thr in enumerate(thresholds):
    enu_result[idx] = np.where(B < thr, 0, (B - thr) * C_arr)

最终得到的enu_result就是你需要的单个数组:

  • enu_result[0]等价于原代码的ENU_1
  • enu_result[1]等价于原代码的ENU_2
  • 以此类推,索引值对应第N个ENU的结果

更高效的无循环实现(可选)

如果数据量较大,用numpy广播特性可以替代循环,计算速度更快,结果完全一致:

enu_result = np.where(
    B[np.newaxis, :] < thresholds[:, np.newaxis],
    0,
    (B[np.newaxis, :] - thresholds[:, np.newaxis]) * C_arr[np.newaxis, :]
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 19:03:04