首页 > 解决方案 > 如何在循环中将项目添加到 numpy hstack?

问题描述

这个代码..

array = np.array([[1, 2, 3], [3, 4, 5]])
for k in range(0, len(array)):
    final_array = np.hstack(array[k, :])
print(final_array)

只会打印最后一个 [3,4,5] 而不是 hstack 中的整个数组。

我尝试做final_array += np.hstack(array[k, :]),但是 Python 给了我一个错误。还尝试在连接之前重塑数组。

我的目标是以相反的顺序将数组项添加到 hstack 中,所以我认为我需要使用循环——而不仅仅是将整个数组插入到 hstack 调用中。

我在网上找到的所有示例都很简单,您有两个数组并调用 hstack。但是,我还没有找到任何在一个循环中组合连续数组的方法。

我假设这很简单,但解决方案让我无法理解。

提前感谢您的建议。

标签: python-3.xnumpynumpy-ndarray

解决方案


您的循环不断用新值覆盖final_array,因此最后只剩下最后一次循环迭代的值。

像这样使用循环构建数组是失败的,它非常慢。相反,只需说出np.hstack(array)并一口气完成所有工作。这将快 10-100 倍。


推荐阅读