如何将 numpy.ndarray 类型转换为列表?
How to convert a numpy.ndarray type into a list?
我想读取 python 中的 matfile,然后将数据导出到数据库中。为此,我需要将数据类型设为 python 中的列表。我写了下面的代码:
import scipy.io as si
import csv
a = si.loadmat('matfilename')
b = a['variable']
list1=b.tolist()
变量有1行15列。当我打印 list1
时,我得到以下答案:(它确实是一个列表,但只包含一个元素的列表。这意味着当我调用 list1[0] 时,我得到相同的结果。):
[[array(['A'],
dtype='<U13'), array(['B'],
dtype='<U14'), array(['C'],
dtype='<U6'), array(['D'],
dtype='<U4'), array(['E'],
dtype='<U10'), array(['F'],
dtype='<U13'), array(['G'],
dtype='<U11'), array(['H'],
dtype='<U9'), array(['I'],
dtype='<U16'), array(['J'],
dtype='<U18'), array(['K'],
dtype='<U16'), array(['L'],
dtype='<U16'), array(['M'],
dtype='<U16'), array(['N'],
dtype='<U14'), array(['O'],
dtype='<U13')]]
虽然我期望的形式是:
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O']
有人知道问题出在哪里吗?
根据我的经验,这就像 MATLAB 文件是结构化的,只是嵌套数组。
您可以自己创建列表:
>>> [x[0][0] for x in list1[0]]
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O']
我想读取 python 中的 matfile,然后将数据导出到数据库中。为此,我需要将数据类型设为 python 中的列表。我写了下面的代码:
import scipy.io as si
import csv
a = si.loadmat('matfilename')
b = a['variable']
list1=b.tolist()
变量有1行15列。当我打印 list1
时,我得到以下答案:(它确实是一个列表,但只包含一个元素的列表。这意味着当我调用 list1[0] 时,我得到相同的结果。):
[[array(['A'],
dtype='<U13'), array(['B'],
dtype='<U14'), array(['C'],
dtype='<U6'), array(['D'],
dtype='<U4'), array(['E'],
dtype='<U10'), array(['F'],
dtype='<U13'), array(['G'],
dtype='<U11'), array(['H'],
dtype='<U9'), array(['I'],
dtype='<U16'), array(['J'],
dtype='<U18'), array(['K'],
dtype='<U16'), array(['L'],
dtype='<U16'), array(['M'],
dtype='<U16'), array(['N'],
dtype='<U14'), array(['O'],
dtype='<U13')]]
虽然我期望的形式是:
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O']
有人知道问题出在哪里吗?
根据我的经验,这就像 MATLAB 文件是结构化的,只是嵌套数组。
您可以自己创建列表:
>>> [x[0][0] for x in list1[0]]
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O']