将Python列表转换为数组

时间:2018-02-05 21:18:26

标签: python arrays list numpy

我正在尝试将列表转换为numpy数组。我的列表长度为64,列表的每个元素都是一个numpy数组(8 x 8)。我的输出应该是一个numpy数组(8,8,1,64)。如何将列表转换为numpy数组。

type(dct)
>>>list

len(dct)
>>>64

type(dct[0])
>>>numpy.ndarray

dct[0].shape
>>>(8,8)

1 个答案:

答案 0 :(得分:4)

您调用numpy.array构造函数:

from numpy import array

the_array = array(dct)

但是只有当 all 列表中的元素具有相同的形状时才会起作用(如果没有,我们仍然可以使用array(..),但是我们得到一维对象数组。

例如:

>>> dct = [array([1, 4, 2, 5]), array([1, 3, 0, 2])]
>>> array(dct)
array([[1, 4, 2, 5],
       [1, 3, 0, 2]])

In case the elements have a different shape:

>>> dct = [array([1, 4, 2, 5]), array([1, 3, 0])]
>>> array(dct)
array([array([1, 4, 2, 5]), array([1, 3, 0])], dtype=object)