如何将DataFrame中的一列转换为N×1数组?
解决DataFrame列转N×1 numpy数组的问题
这里给你几个实用的方法,帮你把DataFrame的一列转成形状为(N,1)的二维数组:
方法一:用reshape调整维度
不管你是从Series(单括号取列df['NameOfColumn'])还是已有的一维数组,都可以用reshape(-1,1)自动调整成N行1列的结构:import numpy as np X = df['NameOfColumn'].to_numpy().reshape(-1, 1)这里
-1会让numpy自动计算对应的行数,不用手动写N的值。方法二:确保用双括号取列(返回DataFrame)
你原本写的df[['NameOfColumn']]返回的是一个只有一列的DataFrame,转成numpy数组后应该天然是(N,1)的形状。如果之前得到的是(N,),大概率是你不小心用了单括号df['NameOfColumn'](返回Series,转numpy是一维数组)。再试一次双括号的写法:X = df[['NameOfColumn']].to_numpy()方法三:用np.newaxis或expand_dims增加维度
这两种方式都是给一维数组手动添加一个维度:# 用np.newaxis X = df['NameOfColumn'].to_numpy()[:, np.newaxis] # 用np.expand_dims X = np.expand_dims(df['NameOfColumn'].to_numpy(), axis=1)
内容的提问来源于stack exchange,提问作者F.G
相关产品推荐
相关产品推荐

