gpt4 book ai didi

Python:如何快速堆叠数据框中某一列的所有数组?

转载 作者:行者123 更新时间:2023-12-01 09:06:56 24 4
gpt4 key购买 nike

如何快速将一列的所有数组快速堆叠成一个大数组?

例如:

Dataframe['Binary_feature'][0] = array([[1,0,0,0,1]])
Dataframe['Binary_feature'][1] = array([[0,1,0,1,0]])
......
Dataframe['Binary_feature'][i] = array([[0,1,0,1,0]])

如何将“Binary_feature”列中的所有数组堆叠到一个数组中,例如:

array([[1,0,0,0,1], [0,1,0,1,0], ... [0,1,0,1,0]])

最佳答案

您可以squeeze用于删除大小为 1 的维度的数组:

s = pd.Series([np.array([[1,0,0,0,1]]),
np.array([[0,1,0,1,0]]),
np.array([[0,1,0,1,0]])])

res = np.array(s.values.tolist()).squeeze()

array([[1, 0, 0, 0, 1],
[0, 1, 0, 1, 0],
[0, 1, 0, 1, 0]])

您会发现这比在您的系列上使用 np.vstack 更有效:

s = pd.concat([s]*10000)

assert (np.array(s.values.tolist()).squeeze() == np.vstack(s)).all()

%timeit np.array(s.values.tolist()).squeeze() # 25.2 ms per loop
%timeit np.vstack(s) # 71.9 ms per loop
%timeit np.vstack(s.values) # 66.8 ms per loop

关于Python:如何快速堆叠数据框中某一列的所有数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51969234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com