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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (32)

如何将列表的列表转换为numpy数组?行是单独的子列表,每一行都包含子列表中的元素。

提问于
用户回答回答于
>>> numpy.array([[1, 2], [3, 4]]) 
array([[1, 2], [3, 4]])
用户回答回答于

如果列表中的元素数比Ignacio Vazquez-Abrams的答案还多,那么列表将无法工作。相反,有三种选择:

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)

扫码关注云+社区