使用 numpy 将最后一列与实际数据集分开

新手上路,请多包涵

我有一个 csv 格式的数据集(没有标题),我想将它分成两部分:(1)没有最后一列的实际数据集,(2)最后一列(类标签)。我的数据集有 100K 行和 65 个特征(最后一列,第 65 列,是我想要分离的类标签)。我写了以下内容:

 dataset_path = 'dataset.csv'

dataset = np.genfromtxt(dataset_path, delimiter=',')
class_label = dataset[:-1]
dataset.drop(class_label, axis=1, inplace=True)

print dataset.shape
print class_label

这其实是错误的。我无法实现我想要的。任何帮助表示赞赏。

原文由 Medo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 777
2 个回答

假设您的数据集没有标题

class_label = dataset[:, -1] # for last column
dataset = dataset[:, :-1] # for all but last column

原文由 ahed87 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您对使用 numpy 数组感兴趣,可以将 csv 文件中的数据读入 numpy 数组:

  from numpy import genfromtxt
 my_data = genfromtxt('E:\Book1.csv', delimiter=',', dtype = 'str',  skip_header=1, unpack=True)

my_data 中的每一项都将是您的 csv 文件中每一列的列表。现在您可以通过以下方式删除最后一列:

  my_data_without_last_column = my_data[:-1].copy()

原文由 Behzad Jamali 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题