将 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 数组转换为列表列表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章