如何将Pandas DataFrame的label列转为数组并转置为垂直形式?
解决Pandas DataFrame标签列转垂直数组的问题
嘿,我懂你的需求啦——你想要把training_set里的label列转成每行一个值的垂直数组(列向量),而不是默认的一维水平数组对吧?这其实是Numpy数组维度调整的常见需求,给你几个简单好用的方法:
方法1:用
reshape(-1, 1)调整维度
你之前用np.asarray(training_set['label'])得到的是形状为(n,)的一维数组,只需要给它加个reshape就能转成(n,1)的二维列向量:import numpy as np Y_train = np.asarray(training_set['label']).reshape(-1, 1)这里的
-1表示让Numpy自动计算这个维度的长度,不用你手动数样本数量,特别省心。方法2:直接从Pandas Series转成列向量
你也可以跳过np.asarray,直接用Pandas自带的to_numpy()方法,再配合reshape一步到位:Y_train = training_set['label'].to_numpy().reshape(-1, 1)方法3:用
np.newaxis增加维度
另一种常用的方式是利用np.newaxis插入一个新轴,把一维数组直接转成二维列向量:Y_train = np.asarray(training_set['label'])[:, np.newaxis]这里的
[:, np.newaxis]相当于给数组在列的方向上新增了一个维度,完美符合你要的垂直格式。
这三种方法都能达到你的要求,选哪个全看你个人习惯哦!
内容的提问来源于stack exchange,提问作者Stanleyrr
相关产品推荐
相关产品推荐

