【发布时间】:2021-01-13 20:55:27
【问题描述】:
我正在尝试找到一种解决方案来展平以下 numpy 数组列表:
a = np.arange(9).reshape(3,3)
b = np.arange(25).reshape(5,5)
c = np.arange(4).reshape(2,2)
myarrs = [a,b,c]
d = np.arange(5*5*5).reshape(5,5,5)
myarrs2 = [a,b,c,d]
对于我目前正在使用的myarrs:
res = np.hstack([np.hstack(i) for i in myarrs])
但我想知道是否有任何其他内置方法可以执行此任务,特别是在具有不同形状的数组的情况下。 我看到了其他问题:Flattening a list of NumPy arrays? 但它们通常指的是具有相同形状的数组。
【问题讨论】:
-
使用
np.hstack([i.ravel() for i in myarrs2])更有效。那 ravel 是一个视图,因此比您拥有的内部 hstack 更好。但还没有内置。