Python 将numpy数组列表转换为单个int numpy数组

Python 将numpy数组列表转换为单个int numpy数组,python,arrays,numpy,Python,Arrays,Numpy,我有一个numpy数组列表,我想将其转换为单个int numpy数组。 例如,如果在维度2x23列表中有46个4x4numpy数组,我希望将其转换为2x23x4维度的单个整数numpy数组。我找到了一种方法,通过遍历每个元素并使用numpy.stack()。有更好的方法吗?你可以像这样简单地使用np.asarray import numpy as np list_of_lists = [[np.random.normal(0, 1, (4, 4)) for _ in range(23)]

我有一个numpy数组列表,我想将其转换为单个int numpy数组。

例如,如果在维度
2x23
列表中有46个
4x4
numpy数组,我希望将其转换为
2x23x4
维度的单个整数numpy数组。我找到了一种方法,通过遍历每个元素并使用
numpy.stack()
。有更好的方法吗?

你可以像这样简单地使用
np.asarray

import numpy as np

list_of_lists = [[np.random.normal(0, 1, (4, 4)) for _ in range(23)] 
                 for _ in range(2)]
a = np.asarray(list_of_lists)
a.shape
该函数将为您推断列表的形状,并创建一个适当的数组。

堆栈适用于我:

In [191]: A,B,C = np.zeros((2,2),int),np.ones((2,2),int),np.arange(4).reshape(2,
     ...: 2)
In [192]: x = [[A,B,C],[C,B,A]]
In [193]: 
In [193]: x
Out[193]: 
[[array([[0, 0],
         [0, 0]]), array([[1, 1],
         [1, 1]]), array([[0, 1],
         [2, 3]])], [array([[0, 1],
         [2, 3]]), array([[1, 1],
         [1, 1]]), array([[0, 0],
         [0, 0]])]]
In [194]: np.stack(x)
Out[194]: 
array([[[[0, 0],
         [0, 0]],

        [[1, 1],
         [1, 1]],

        [[0, 1],
         [2, 3]]],


       [[[0, 1],
         [2, 3]],

        [[1, 1],
         [1, 1]],

        [[0, 0],
         [0, 0]]]])
In [195]: _.shape
Out[195]: (2, 3, 2, 2)
stack
x
视为两个项目的列表,并将
np.asarray
应用于每个项目

In [198]: np.array(x[0]).shape
Out[198]: (3, 2, 2)
然后添加标注(1,3,2,2),并在第一个轴上连接

在这种情况下,
np.array(x)
也可以工作

In [201]: np.array(x).shape
Out[201]: (2, 3, 2, 2)

所以您有一个
2x23
列表,其中包含
4x4
numpy数组,并希望将其变成一个单一的四维numpy数组?