【发布时间】:2019-12-12 09:10:48
【问题描述】:
我有一个简单的嵌套列表理解,但无法理解我应该如何将它写入干净的 numpy 代码。 (我必须这样做,以提高速度)
这是我的列表理解:
import numpy as np
all_as = np.arange(-1, 1+0.01, 0.01)
all_cs = np.arange(-1, 1+0.01, 0.01)
out = [(a,c) for c in all_cs for a in all_as]
out = np.array(out) # obviously not very efficient...
我确定有一种方法可以不首先创建列表,但我不知道如何。
我知道有很多类似的问题,但没有一个对我有真正的帮助。
【问题讨论】:
-
我不知道它在性能方面是否有任何改变,但您可以删除一个列表声明并执行
out = [(a,c) for c in all_as for a in all_as],这似乎与前一个表达式相同。 -
甚至this one 有一个很好的规范答案(不是检查答案,第二个),下面是@PaulPanzer 更快的答案。
标签: python arrays performance numpy list-comprehension