2D python列表的numpy数组到2D numpy数组

时间:2016-11-23 09:53:34

标签: python numpy

哪种方式效果最好 转换类似的东西

problem = [ [np.array([1,2,3]), np.array([4,5])],
            [np.array([6,7,8]), np.array([9,10])]]

desired = np.array([[1,2,3,4,5], 
                   [6,7,8,9,10]])

不幸的是,最终的列数和行数(以及子数组的长度)事先是未知的,因为从二进制文件中读取子数据,逐个记录。

2 个答案:

答案 0 :(得分:5)

这个怎么样:

problem = [[np.array([1,2,3]), np.array([4,5])],
        [np.array([6,7,8]), np.array([9,10])]]

print np.array([np.concatenate(x) for x in problem])

答案 1 :(得分:1)

我想这个:

print np.array([np.hstack(i) for i in problem])

使用您的示例,运行在0.00022s,其中concatenate需要0.00038s

你也可以使用apply_along_axis,虽然它运行在0.00024s:

print np.apply_along_axis(np.hstack, 1, problem)