的结果,我想获得如下:不公开一个np.linespace
>>> 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链来实现或者是第二步?
因为'l'有100个长度为30的数组,'np.array(l)'是一个(100,30)数组。这可以按原样使用,根据需要重新塑造,缩小和/或变成列表。 – hpaulj
在我的时间测试中,生成100个阵列需要大部分时间。不管你是怎么做的,将它们组装成一个列表占用了总时间的一小部分。 – hpaulj