Python Numpy-从CSV读取数组作为[153,]而不是[153394]

Python Numpy-从CSV读取数组作为[153,]而不是[153394],python,csv,numpy,Python,Csv,Numpy,我有一个CSV文件,有153行和394列。到目前为止,我能够读入CSV文件并删除最后三列: all_data = np.genfromtxt('data.csv',delimiter=",",names=True) test_data = all_data[::3] test_data_x = all_data[:,:-3] 直到今天,这种方法一直运作良好。当我今天运行它时,这将不起作用,当我打印出我得到的所有_数据时: [(1,5,10...4),(2,7,16...3),...,(153,

我有一个CSV文件,有153行和394列。到目前为止,我能够读入CSV文件并删除最后三列:

all_data = np.genfromtxt('data.csv',delimiter=",",names=True)
test_data = all_data[::3]
test_data_x = all_data[:,:-3]
直到今天,这种方法一直运作良好。当我今天运行它时,这将不起作用,当我打印出我得到的所有_数据时:

[(1,5,10...4),(2,7,16...3),...,(153,2,16...2)]
我打印出了我得到的所有_数据的形状[153,]。我尝试过np.Reforme,但后来我得到:

ValueError: total size of new array must be unchanged

唯一更新的是我读取数据时使用的csv,但现在它的格式与标题相同。我不知道如何让numpy正确读取此CSV?

如果我不得不猜测,在新的CSV文件中有一个错误的字符,阻止您的一些数字被解释为数字。您可能需要逐项检查每个生成的元组,以找到有问题的数据位。

我只是在测试。不幸的是,没有离群的字符——但我发现,如果我删除了“names=True”,那么它就起作用了。然后我只添加了skip_header=1,但我更愿意保留标题。我能想到的标题的唯一问题是,它们在每个标题前都有一个空格。这会导致问题吗?print{lenrow for row in all_data}返回什么?set[394]。通过使用它,似乎是names=True导致了这种情况的发生,当我删除它时,我得到了一个普通数组。它使用名称创建了一个结构化数组。这些列现在是由数据类型定义的字段。153个元素,394个字段。