将 2d numpy 数组转换为列表列表 [重复]

Posted

技术标签:

【中文标题】将 2d numpy 数组转换为列表列表 [重复]【英文标题】:Convert 2d numpy array into list of lists [duplicate] 【发布时间】:2012-04-01 02:06:56 【问题描述】:

我使用了一个外部模块 (libsvm),它不支持 numpy 数组,只支持元组、列表和字典。但我的数据在二维 numpy 数组中。如何以 pythonic 方式转换它,也就是没有循环。

>>> import numpy
>>> array = numpy.ones((2,4))
>>> data_list = list(array)
>>> data_list
[array([ 1.,  1.,  1.,  1.]), array([ 1.,  1.,  1.,  1.])]

>>> type(data_list[0])
<type 'numpy.ndarray'>  # <= what I don't want

# non pythonic way using for loop
>>> newdata=list()
>>> for line in data_list:
...     line = list(line)
...     newdata.append(line)
>>> type(newdata[0])
<type 'list'>  # <= what I want

【问题讨论】:

您可能想查看 scikit-learn,它包含一个可以本地处理 Numpy 数组的 LibSVM 包装器。 scikit-learn.org/stable/modules/classes.html#module-sklearn.svm 【参考方案1】:

您可以简单地将矩阵转换为matrix.tolist(),证明:

>>> import numpy
>>> a = numpy.ones((2,4))
>>> a
array([[ 1.,  1.,  1.,  1.],
       [ 1.,  1.,  1.,  1.]])
>>> a.tolist()
[[1.0, 1.0, 1.0, 1.0], [1.0, 1.0, 1.0, 1.0]]
>>> type(a.tolist())
<type 'list'>
>>> type(a.tolist()[0])
<type 'list'>

【讨论】:

以上是关于将 2d numpy 数组转换为列表列表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将列表列转换为 2D numpy 数组

将熊猫数据框转换为numpy数组[重复]

将2d数组转换为图像

将列表列表的字符串转换为 Numpy 数组

如何将 numpy 数组列表转换为单个 numpy 数组?

将 char 2d 数组转换为 2d char 数组列表时出现问题