Python 将csv转换为numpy数组

Python 将csv转换为numpy数组,python,csv,numpy,Python,Csv,Numpy,因此,我从Kaggle竞赛下载了MNIST数字数据集,我想编辑“train.csv”文件,以便训练我的神经网络。 “train.csv”文件有42000行和785列。每行代表一个图像。第一列包含标签,即图像中的数字,其余列是数字的28X28图像的像素值 我希望能够将第一列存储为“training_result”向量,将其余列存储为“training_inputs”矩阵 首先,我使用pandas加载csv文件 data = read_csv("train.csv") 现在,为了创建训练结果向量,

因此,我从Kaggle竞赛下载了MNIST数字数据集,我想编辑“train.csv”文件,以便训练我的神经网络。 “train.csv”文件有42000行和785列。每行代表一个图像。第一列包含标签,即图像中的数字,其余列是数字的28X28图像的像素值

我希望能够将第一列存储为“training_result”向量,将其余列存储为“training_inputs”矩阵

首先,我使用pandas加载csv文件

data = read_csv("train.csv")
现在,为了创建训练结果向量,我尝试了以下方法:

 training_result = data[0:42001][0:1]
 >>training_result.shape
 (1,785)
所以我得到的是一行x785列,而不是42000行x一列。切片操作中有错误吗

同样为了获得培训投入,我尝试了

training_inputs = data[0:42001][1:785]
>>training_inputs.shape
(784,785)
我得到784行x 785列,而不是42000行x 784列


如何纠正此错误?

我会首先检查数据的形状是否正确。如果它是好的,那么我认为你应该交换你的索引方式

training_result=data[0].values
training_inputs=data[1:].values
培训结果=数据[0:1][0:42001]


training\u inputs=data[0:784][0:42001]
我终于明白了我所犯的错误。基本上,我试图进行多数组切片,但使用的语法是错误的

因此,如果我希望我的training_inputs变量具有来自数据集“data”的42000行和784列,我应该执行以下操作

training_result = data[0:42001,1:785]

切片(
[0:1]
)意味着返回一个列表,该列表仅包含所切片列表的第一个元素。碰巧您对列表进行了两次切片:首先(
data[0:42001]
)返回所有元素,然后第二个元素应用于第一个元素的结果。python中的
[]
运算符不是矩阵表示法。Jesse,感谢您的回答!为了使StackOverflow成为编程信息的宝贵资源,请您添加一些解释,说明为什么您的解决方案会解决此问题?