【问题标题】:How can I implement for loop in Python?如何在 Python 中实现 for 循环?
【发布时间】:2021-09-26 22:52:04
【问题描述】:

我正在尝试开发 for 循环,这样我就不必为数组 B 中的每个值执行命令。我希望在一个数组中输出。 如何在 Python 中为以下代码执行此操作?

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=[ 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])
EU=np.array(C)*np.array(B)
ENU_1 =np.where(B < 500, 0, (B-500)*C)
ENU_2 =np.where(B < 1000, 0, (B-1000)*C)

【问题讨论】:

  • 恕我直言,肯定已经有成千上万的在线资源解释了 Python 的基础知识......例如:wiki.python.org/moin/ForLoop
  • 感谢您的回答。

标签: python numpy


【解决方案1】:

BC 创建为 Numpy 数组:

C = np.array([ 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])

然后计算 EU 就像两个源数组的乘法一样,没有任何循环:

EU = C * B

你的其余代码(计算 ENU_1ENU_2)没问题。

但是你写到你想要输出 one 数组,这还不清楚。 您想连接到目前为止计算的 3 个数组吗?

如果是这种情况,运行例如:

result = np.concatenate((EU, ENU_1, ENU_2))

注意双括号,因为:

  • 外括号是参数的“容器”,
  • 内圆括号(包含里面的内容)创建一个 元组 - 此函数的第一个(也是唯一一个)参数 - 数组序列 连接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-15
    • 2021-10-28
    • 2020-02-04
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    相关资源
    最近更新 更多