【问题标题】:Getting rid of nested for loop摆脱嵌套的for循环
【发布时间】:2020-08-04 20:36:28
【问题描述】:

我是一个完全的编码新手,并且非常坚持摆脱嵌套的 for 循环。

for i in range(A.shape[0]):
    for sublink in links:
        if A[i, sublink[0]] >= 1:
            vec = np.array(A[i]).tolist()
            vec[sublink[0]] -= 1
            vec[sublink[1]] += 1
            yield vec

假设我有links = [[0,1],[1,2],[1,0],[2,1]]A=[3,0,0,2,1,0,1,2,0] 的链接,我想循环平展NumPy 数组A,循环最初在A 的前三个元素上运行,并在for 循环块内执行任何内容。然后循环在展平 A 的第二个三个元素段上运行,依此类推。

【问题讨论】:

标签: python python-3.x numpy for-loop optimization


【解决方案1】:

如果您有兴趣使嵌套循环变平并且这是您的唯一目标,您可以使用 Numpy。

import numpy as np

nplist = np.array(list_)

#flatten
nplist = np.ndarray.flatten(nplist)

list_ = list(nplist)



【讨论】:

  • 我知道,问题是假设您有一个包含 9 个元素的列表。我想以最初循环遍历列表中的前三个项目并修改其中的一些元素的方式循环列表。然后循环需要遍历后三个项目并修改其中的一些元素等。
猜你喜欢
  • 2014-02-12
  • 2020-02-21
  • 1970-01-01
  • 2018-11-30
  • 1970-01-01
  • 1970-01-01
  • 2020-05-28
  • 1970-01-01
相关资源
最近更新 更多