我想从一个有许多缺少值的文件中读取数据,如本例中所示:

1,2,3,4,5
6,,,7,8
,,9,10,11

我正在使用numpy.loadtxt函数:
data = numpy.loadtxt('test.data', delimiter=',')

问题是缺少的值会破坏loadtxt(我得到一个“valueerror:could not convert string to float:”,毫无疑问是因为有两个或更多的连续分隔符)。
有没有一种方法可以用loadtxt或其他函数自动完成这项工作,或者我必须咬住要点并手动分析每一行?

最佳答案

我可能会使用:

>>> from numpy import genfromtxt
>>> genfromtxt("missing1.dat", delimiter=",")
array([[  1.,   2.,   3.,   4.,   5.],
       [  6.,  nan,  nan,   7.,   8.],
       [ nan,  nan,   9.,  10.,  11.]])

然后对nan做任何事情(将它们改为某个东西,使用一个蒙版,等等),其中一些可以直接进行:
>>> genfromtxt("missing1.dat", delimiter=",", filling_values=99)
array([[  1.,   2.,   3.,   4.,   5.],
       [  6.,  99.,  99.,   7.,   8.],
       [ 99.,  99.,   9.,  10.,  11.]])

关于python - 从缺少值的文本文件中读取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10686657/

10-13 07:22
查看更多