如何将列表的简单列表转换为numpy数组?行是单独的子列表,每行包含子列表中的元素。列表成numpy数组列表
回答
>>> numpy.array([[1, 2], [3, 4]])
array([[1, 2], [3, 4]])
很简单:
>>> lists = [[1, 2], [3, 4]]
>>> np.array(lists)
array([[1, 2],
[3, 4]])
如果你的列表清单有不同的元素比伊格纳西奥巴斯克斯 - 艾布拉姆斯的答案是行不通的次数列出。代替有3个选项:
1)请数组的数组:
x=[[1,2],[1,2,3],[1]]
y=numpy.array([numpy.array(xi) for xi in x])
type(y)
>>><type 'numpy.ndarray'>
type(y[0])
>>><type 'numpy.ndarray'>
2)请列出的数组:
x=[[1,2],[1,2,3],[1]]
y=numpy.array(x)
type(y)
>>><type 'numpy.ndarray'>
type(y[0])
>>><type 'list'>
3)首先使列表在长度上相等:
x=[[1,2],[1,2,3],[1]]
length = len(sorted(x,key=len, reverse=True)[0])
y=numpy.array([xi+[None]*(length-len(xi)) for xi in x])
y
>>>array([[1, 2, None],
>>> [1, 2, 3],
>>> [1, None, None]], dtype=object)
谢谢,为此来到这里。一段时间以来,一直在使用numpy,并发现这种行为并不平凡。感谢您抽出时间来解释这个更一般的情况。 – 2014-10-29 00:07:46
竖起大拇指为这个答案! – alisa 2016-11-12 04:19:25
由于这是Google列表中将列表转换为Numpy数组的首选搜索,我将提供以下内容尽管问题是4岁:
>>> x = [[1, 2], [1, 2, 3], [1]]
>>> y = numpy.hstack(x)
>>> print(y)
[1 2 1 2 3 1]
当我第一次想到这样做,我很高兴与我自己,因为它是如此简单。然而,随着名单的大名单时间之后,它实际上是更快地做到这一点:
>>> y = numpy.concatenate([numpy.array(i) for i in x])
>>> print(y)
[1 2 1 2 3 1]
注意@巴斯蒂安的回答#1不使一个单一的连续的列表,所以我增加了concatenate
。
无论如何...我更喜欢hstack
的方法,因为它的优雅使用Numpy。
此外,搜索转换嵌套列表具有N个等级为N维数组的问题后,我什么也没找到,所以这里是我的方式围绕它:
import numpy as np
new_array=np.array([[[coord for coord in xk] for xk in xj] for xj in xi], ndmin=3) #this case for N=3
- 1. 展平NumPy数组列表?
- 2. 如何将2d numpy数组列表连接成一个3d numpy数组?
- 3. 元组列表Numpy recarray
- 4. 将2D numpy数组列表转换为一个3D numpy数组?
- 5. 如何从numpy数组列表中删除一个numpy数组?
- 6. 初始化numpy的数组列表
- 7. 给numpy数组添加一个列表
- 8. 使用numpy数组的列表形状
- 9. 将列表转换为numpy数组
- 10. 如何从numpy数组创建列表?
- 11. numpy数组内的列表索引
- 12. Python中3x1 numpy数组的列表
- 13. Python中的列表和Numpy数组
- 14. NumPy的数组列表转换
- 15. 将int列表转换为numpy数组
- 16. 表达式sympy数组numpy的阵列
- 17. numpy的数组列表格式
- 18. 使用列表,而不是numpy数组
- 19. 如何排序numpy数组列表?
- 20. Python:numpy fftn在numpy数组列表上
- 21. numpy数组比Python列表大
- 22. 将2d numpy数组转换为列表列表
- 23. Python中的容器列表:标准列表与numpy数组
- 24. 将1D numpy数组转换为列表列表
- 25. 制表符分隔数组到numpy数组列表?
- 26. 用于遍历numpy数组列表的行的生成器
- 27. 从列表理解输出中有效地生成numpy数组?
- 28. 如何将(dtype = object)numpy数组值设置为Python列表,而不用numpy将列表解释为值列表?
- 29. 从numpy数组按指数列表切片子阵列
- 30. 组列表转换成由列表
的REPL指略微削减初学者问题。 – 2012-04-27 07:21:54
这会自动转换2D数组中列表的列表,因为所有包含列表的长度都是相同的。你知道如何不这么做:即使所有列表的长度相同,也要创建一个列表数组?或者是否有可能在1D数组的一维数组中转换二维数组(有效地,我的意思是,没有迭代方法或python地图的东西) – 2012-10-04 09:58:00
如果这对您不适用,因为您的子列表的大小不是一样的,请参阅[the以下答案](http://stackoverflow.com/a/26224619/1449460)。 – 2016-10-17 05:27:25