Python,如何将[(a,b,c)(d,e,f)(g,h,k)]数组转换为numpy [[a,b,c],[d,e,f],[ g,h,k]]

时间:2018-06-28 03:36:59

标签: python-2.7 numpy arraylist brackets

我正在研究实时可视化3D点集的问题,我需要将点云转换为特定格式。例如,我得到的原始数据是

[(-1.3604002, -1.0681801, 1.8390535) (-5.5378942, -4.362379 , 7.5151973)
 (-0.       , -0.       , 0.       ) ...
 ( 0.       ,  0.       , 0.       ) ( 0.       ,  0.       , 0.       )
 ( 0.       ,  0.       , 0.       )]

,格式为(307200,)
我正在寻找一种快速的方法来将此数据转换为(307200,3) numpy数组之类的格式,而无需使用for循环遍历每一点。谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定是否要遍历每个点,因为在某个时候,Python必须查看每个值才能将其放入新数组中,但是您可以使用列表推导而不是for循环。他们做同样的事情,但看起来好多了。

import numpy

lst = [(1,2,3), (4,5,6)]

lst = [numpy.asarray(e) for e in lst]

print(lst)
# [[1,2,3], [4,5,6]]