我在Python中创建了一个多维数组。它是一个大小为(100,91)的数组的数组。
我需要创建一个子数组列表,具有预先指定的长度。
我需要用一种灵活的方式来编码它。数组的大小每次都会改变。
代码如下:
N=100
i=np.random.poisson(10,N)
v=np.random.uniform(0,200,sum(i))
r= np.vstack([v]*91).T
splitted_r=np.split(r,list(i),axis=1)
我期望创建子数组,每个子数组都有i中指示的行数。我怎样才能以最快的方式做到这一点?
1条答案
按热度按时间icnyk63a1#
我知道你想把数组拆分成
n
个子数组,其中每个子数组的length
(即第一维中的元素数目)取决于由泊松分布生成的相应数目。您可以通过使用
np.cumsum()
来标识每个拆分的索引,然后使用列表解析来执行拆分,从而获得非均匀拆分。下面的代码展示了如何做到这一点,我将N
降低到3,以便在print
语句中获得结果,这些结果可以作为注解包含在代码中,以展示它是如何工作的。