for循环中的垂直堆栈numpy数组

vertical stack numpy array in for loop

我有一个列表(region_props_list),大小 = 37,它具有如下所示的 2D numpy 数组的值。 (因此,region_props_list[0] 是一个 numpy 数组。)

我想把所有的数据垂直堆叠起来,做成一个新的pandas DataFrame,它的形状是($$, 7)

如何使用 for 循环垂直堆叠数据?有人可以给我建议吗?

您不需要 for 循环。您可以使用 np.vstack 代替:

import numpy as np

lst = [np.array([[1, 2], [3, 4]]), np.array([[5, 6]]), np.array([[7, 8], [9, 10]])]
a = np.vstack(lst)
print(a)

# [[ 1  2]
#  [ 3  4]
#  [ 5  6]
#  [ 7  8]
#  [ 9 10]]

如果您的目标是构建数据框,那么您可以将 itertools.chainpd.DataFrame.from_records 结合使用(甚至无需制作 v-stacked 数组):

import numpy as np
import pandas as pd
import itertools

lst = [np.array([[1, 2], [3, 4]]), np.array([[5, 6]]), np.array([[7, 8], [9, 10]])]
df = pd.DataFrame.from_records(itertools.chain.from_iterable(lst))
print(df)

#    0   1
# 0  1   2
# 1  3   4
# 2  5   6
# 3  7   8
# 4  9  10

P.S。请不要post截图。制作一个人们可以轻松处理的可复制和粘贴的最小示例。