首页 > 解决方案 > Numpy 连接,使用 * 或类似的

问题描述

我有一个 numpy 数组列表。像这样的东西(它不会是相同的例子,但相似)

lst = [np.array([ 1,2,3,4,5,6 ]).reshape(-1, 1), np.array([ 1,2,3,4,5,6 ]).reshape(-1, 1), np.array([ 1,2,3,4,5,6 ]).reshape(-1, 1)]

在这种情况下,我lst有 3 个 numpy 数组,它们的形状为 (6,1),现在我想将它连接起来,如下所示:

# array([[1, 1, 1],
#        [2, 2, 2],
#        [3, 3, 3],
#        [4, 4, 4],
#        [5, 5, 5],
#        [6, 6, 6]])

这可以完美地做到这一点......

example = np.c_[lst[0], lst[1], lst[2]]

但我的 lst 并不总是相同的大小,所以我尝试了这个。

example = np.c_[*lst]

但它不起作用。有没有办法以这种方式连接整个列表?

标签: pythonnumpy

解决方案


您可以使用column_stack功能:

import numpy as np

lst = [np.array([1, 2, 3, 4, 5, 6]).reshape(-1, 1), np.array([1, 2, 3, 4, 5, 6]).reshape(-1, 1), np.array([1, 2, 3, 4, 5, 6]).reshape(-1, 1)]

example = np.column_stack(lst)
print(example)
[[1 1 1]
 [2 2 2]
 [3 3 3]
 [4 4 4]
 [5 5 5]
 [6 6 6]]

推荐阅读