将numpy数组列表转换为5D numpy数组

时间:2019-04-09 16:05:48

标签: python arrays list numpy

我有一个7000个对象(list_of_objects)的数据库,这些文件中的每个文件都包含一个大小为10x5x50x50x3的numpy数组。我想创建一个包含7000*10x5x50x50x3的5d numpy数组。我尝试使用两个for循环来这样做。我的示例代码:

fnl_lst = []
for object in list_of_objects:
     my_array = read_array(object) # size 10x5x50x50x3
     for ind in my_array:
        fnl_lst.append(ind)
fnl_lst= np.asarray( fnl_lst) # print(fnl_lst) -> (70000,)

该代码最终导致一个嵌套的numpy数组,其中包含70000个数组,每个数组的大小为5x50x50x3。但是,我想建立一个大小为70000x5x50x50x3的5d数组。我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

fnl_lst = np.stack([ind for ind in read_array(obj) for obj in list_of_objects])

或者,只需附加到现有代码上即可:

fnl_lst = np.stack(fnl_lst)

UPD:根据hpaulj的评论,如果my_array的确是10x5x50x50x3,这可能就足够了:

fnl_lst = np.stack([read_array(obj) for obj in list_of_objects])