【发布时间】:2017-10-21 16:43:29
【问题描述】:
我想得到以下内容:
>>> import numpy as np
>>> import itertools
>>> a1 = np.random.randn(100)
>>> a2 = np.random.randn(100)
>>> l = [np.linspace(start=np.asscalar(min(a1[i],a2[i])), stop=np.asscalar(max(a1[i],a2[i])), num=30) for i in range(len(a1))]
但是,l 中的元素现在是数组。我想要一份花车清单。如果我这样做了
l = [np.linspace(start=np.asscalar(min(a1[i],a2[i])), stop=np.asscalar(max(a1[i],a2[i])), num=30).tolist() for i in range(len(a1))]
我得到一个列表列表,所以我需要通过打开内部列表
>>> list(chain.from_iterable(l))
我的列表很大,所以我想从一开始就得到正确的结果。有没有办法实现这一点,或者是否需要通过 itertools 链进行第二步?
【问题讨论】:
-
SInce
l有 100 个长度为 30 的数组,np.array(l)是一个 (100,30) 数组。可以按原样使用,根据需要重新塑造、分解和/或变成列表。 -
在我的时间测试中,生成 100 个数组需要的时间最多。不管你怎么做,将它们组装成一个列表只需要一小部分时间。