如何将多列DataFrame转换为一维数组?当前输出为多维数组
将DataFrame多列转换为一维数组的解决方法
你当前选取DataFrame多列后直接调用to_numpy(),得到的是对应列数×行数的二维数组,要转成一维数组可以用以下几种方法:
使用numpy的
flatten()方法:直接将二维数组展平为一维,返回数组的副本:t_e = df[['heat 7', 'heat 1', 'heat 2']].to_numpy().flatten() t_c = df[['heat 4','heat 5','heat 3','heat 6']].to_numpy().flatten()使用numpy的
ravel()方法:展平数组,优先返回原数组的视图(节省内存),修改视图可能会影响原数组:t_e = df[['heat 7', 'heat 1', 'heat 2']].to_numpy().ravel() t_c = df[['heat 4','heat 5','heat 3','heat 6']].to_numpy().ravel()使用pandas的
stack()方法:先将多列堆叠为一维Series,再转换为numpy数组:t_e = df[['heat 7', 'heat 1', 'heat 2']].stack().to_numpy() t_c = df[['heat 4','heat 5','heat 3','heat 6']].stack().to_numpy()使用
reshape(-1):让numpy自动计算一维数组的长度,完成维度转换:t_e = df[['heat 7', 'heat 1', 'heat 2']].to_numpy().reshape(-1) t_c = df[['heat 4','heat 5','heat 3','heat 6']].to_numpy().reshape(-1)
内容的提问来源于stack exchange,提问作者Circle
相关产品推荐
相关产品推荐

