【发布时间】:2018-06-04 16:37:00
【问题描述】:
我已经像这样拆分了一个 numpy 数组:
x = np.random.randn(10,3)
x_split = np.split(x,5)
将 x 平均分成五个形状为 (2,3) 的 numpy 数组,并将它们放在一个列表中。将这些子集重新组合在一起的最佳方法是什么(例如x_split[:k] 和x_split[k+1:]),以便生成的形状类似于原始 x,即(某物,3)?
我发现对于 k > 0,你可以这样做:
np.vstack((np.vstack(x_split[:k]),np.vstack(x_split[k+1:])))
但这在 k = 0 as x_split[:0] = [] 时不起作用,因此必须有更好更清洁的方法。我在 k = 0 时收到的错误消息是:
ValueError: 需要至少一个数组来连接
【问题讨论】:
-
np.vstack(x_split[:k] + x_split[k+1:])呢? -
将
k=0案例作为特殊处理有什么问题。我们一直在进行这种边缘条件测试。不是吗? -
@hpaulj 因为对我来说这个问题似乎很简单,以至于我认为我一定遗漏了一些明显的东西 - 请参阅 Paul Panzer 的评论和 Crazy Ivan 的回答