Python 从深度数组中提取列表

Python 从深度数组中提取列表,python,python-3.x,Python,Python 3.x,我有一套*.mat文件,我可以很容易地阅读它们。每个文件的形状为(1,1),如下所示: [[(array([[ 20913, 28913, 36913, 44913, 52914, 60914]], dtype=int32), array([[ 1, 1, -1, 1, 1, 1]], dtype=int16))]] 在这种情况下,如何提取每个数组?通过复制您拥有的相同嵌套列表,可以很容易理解: import numpy as np arr1 = np.arra

我有一套
*.mat
文件,我可以很容易地阅读它们。每个文件的形状为
(1,1)
,如下所示:

[[(array([[  20913,   28913,   36913,   44913,   52914,   60914]], dtype=int32), array([[ 1,  1, -1,  1,  1,  1]], dtype=int16))]]

在这种情况下,如何提取每个数组?

通过复制您拥有的相同嵌套列表,可以很容易理解:

import numpy as np

arr1 = np.array([[20913, 28913, 36913, 44913, 52914, 60914]], dtype=np.int32)
arr2 = np.array([[1, 1, -1, 1, 1, 1]], dtype=np.int16)

lst = [[arr1, arr2]]
print(lst)
上面是您的
lst
结构,还有
arr1
arr2
是(1,1):

首先
[0]
获取
[arr1,arr2]
。下一个括号分别代表
arr1
arr2

使用
tolist()
可以将它们转换为python的内置列表类型,因为它们是(1,1),所以需要第一项,这意味着
[0]

nested1 = lst[0][0].tolist()[0]
nested2 = lst[0][1].tolist()[0]

print(nested1)
print(nested2)