我应该如何解释numpy数组中的循环?

时间:2019-05-27 12:17:46

标签: python numpy

我想知道这段代码是如何完成工作的。我不明白在for循环中编写的n和i如何导致[0 1]。

如果dpn=1conn=[0 1],则以下代码的结果将为eft=[0 1]

eft = numpy.array([dpn * n + i for n in conn for i in range(dpn)])

1 个答案:

答案 0 :(得分:0)

numpy.array()调用仅将python列表转换为numpy数组。整个逻辑发生在列表推导内部。您可以在此处阅读列表理解: https://hackernoon.com/list-comprehension-in-python-8895a785550b

列表推导也可以写为for循环,在这种情况下,有两个嵌套循环:

eft = []

for n in conn:
  for i in range(dpn):
    eft.append(dpn * n + i)

基本上,这只是基于其他可迭代对象创建新列表的一种简洁方法。