Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何转换相同长度的数组列表_Python_Arrays_List_Numpy - Fatal编程技术网

Python 如何转换相同长度的数组列表

Python 如何转换相同长度的数组列表,python,arrays,list,numpy,Python,Arrays,List,Numpy,如果我在数组数组中转换数组列表(内部数组的长度都相同),python会将其转换为一个矩阵,将所有元素连接在一起。我希望它始终保持数组的数组。下面是发生的情况: list_1 = [[np.array([1,2,3]),np.array([4,5,6])]] >>> np.array(list_1) array([[[1, 2, 3], [4, 5, 6]]]) 但我会: >>> np.array(list_1) array([array([

如果我在数组数组中转换数组列表(内部数组的长度都相同),python会将其转换为一个矩阵,将所有元素连接在一起。我希望它始终保持数组的数组。下面是发生的情况:

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

>>> np.array(list_1)
array([[[1, 2, 3],
        [4, 5, 6]]])
但我会:

>>> np.array(list_1)
array([array([1, 2, 3]), array([4, 5,6])], dtype=object)
我怎样才能做到这一点

list_1 = [[np.array([1,2,3]),np.array([4,5,6])]]
l = np.array(list_1)
print(l.tolist())
结果:

[1,2,3],[4,5,6]]

In [20]: list_1 = [[np.array([1,2,3]),np.array([4,5,6])]] 
分配大小正确的对象数据类型数组:

In [27]: arr = np.empty(2, object)                                              
将值从列表复制到该数组:

In [28]: arr[:] = list_1[0]                                                     
In [29]: arr                                                                    
Out[29]: array([array([1, 2, 3]), array([4, 5, 6])], dtype=object)
有时广播会导致这种拷贝出现问题,我不得不求助于更明确的迭代:

In [30]: for i in range(2): 
    ...:     arr[i] = list_1[0][i] 
您的
list_1
有一组额外的括号,因此需要使用
list_1[0]


最近我在评论中链接的问题有很多很好的答案,关于为什么
np.array(list_1)
通常会产生一个2d(实际上是3d)数组。

这与我的问题无关,伙计。对不起,我在回答问题的最后举例说明了一种方法。制作一个大小合适的对象数组,并从列表中填充它。有时避免广播错误是很棘手的。