我正在通过实验生成数据集。我最终得到的csv数据集通常是n x 4
维(n
行; n > 1000
和4
列)。但是,由于数据收集过程的工件,通常前几行和最后几行只有2或3列。所以数据集看起来像:
8,0,4091
8,0,
8,0,4091,14454
10,0,4099,14454
2,0,4094,14454
8,-3,4104,14455
3,0,4100,14455
....
....
14,-1,4094,14723
0,3,4105,14723
7,0,4123,14723
7,
6,-2,4096,
3,2,
如您所见,前两行和后三行没有我期望的4列。当我尝试使用np.loadtxt(filename, delimiter = ',')
导入此文件时,出现错误。删除少于4列的行(前2行,最后3行,在本例中),导入工作正常。
两个问题:
为什么不通常的导入工作。我不确定这次导入的确切错误是什么。换句话说,为什么在所有行中没有相同数量的列是个问题?
作为一种解决方法,我知道在使用numpy np.loadtxt(filename, skiprows= 2)
导入文件时如何忽略前两行,但有一种简单的方法可以在底部选择固定数量的行来忽略
注意:这不是在numpy数组中查找唯一行。它更多的是导入每行包含的列数不均匀的csv数据。
答案 0 :(得分:1)
您的问题与Using genfromtxt to import csv data with missing values in numpy
类似(重复)1)我不确定这是默认行为的原因。
2)使用numpy的genfromtext。为此,您需要提前知道正确的列数。
data = numpy.genfromtxt('data.csv', delimiter=',', usecols=[0,1,2,3], invalid_raise=False)
希望这有帮助!
答案 1 :(得分:1)
您可以使用genfromtxt
,它允许在结尾处跳过和的行:
np.genfromtxt('array.txt', delimiter=',', skip_header=2, skip_footer=3)