首页 > 解决方案 > 如何将数组列表划分为子数组?

问题描述

我有一个包含以下元素值的列表“a”。在我的代码中,我创建了一个列表:

a=[]
b=np.zeros(3)
c=[]
for i in range(0,4):
    b[0]=i+1
    b[1]=i+2
    b[2]=i+3
    c.append(deepcopy(b))
a.append(c)
c=[]
print(a)

输出:

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

上面的列表是我输入数据的例子

我试图制作数组

b=np.array(a)

array([[[1., 2., 3.],
    [2., 3., 4.],
    [3., 4., 5.],
    [4., 5., 6.]]])
b.shape
(1,4,3)

但我想制作 b 的形状 (4,1,3),它给出以下输出:所以当我访问

b[0] gives [1,2,3]
b[1] gives [2,3,4]
b[2] gives [3,4,5]
b[3] gives [4,5,6]

标签: python-3.xlistnumpy

解决方案


为此有一个内置函数: b = np.vstack(a)

已编辑

使用 np.vstack(a) 后

b=b.reshape(4,3,1)

这给出了所需的结果

b[0]- > [1,2,3]

推荐阅读