2014-03-18 61 views
1

我有在表单数据文件操作数据使用numpy的loadtxt

Irend = 
    292.62 
    256.3 
    175.82 
    166.34 

IloadI = 
     0    
    7.8987 
    7.1084 
    9.477 

我试图通过numpy.loadtxt读它,并获得ValueError异常

>>> import numpy as np 
    >>> np.loadtxt('data.txt') 

    ValueError: could not convert string to float: Irend 

请帮我操作数据正确。

回答

1

可以使用skiprows论点忽略一个给定的行数:

np.loadtxt('data.txt', skiprows=1) 

但它会在你的情况下,再次"IloadI"卡住。在使用np.loadtxt之前,您必须解析此文件。

一个建议是使用列表理解与"I"删除线:

tmp = [i for i in open('data.txt') if not 'I' in i] 
a = np.genfromtxt(tmp) 

如果你知道有多少,如果你有这些条目('Irend''IloadI'等),你可以重塑a

a.reshape(2, -1).T 
#array([[ 292.62 , 0. ], 
#  [ 256.3 , 7.8987], 
#  [ 175.82 , 7.1084], 
#  [ 166.34 , 9.477 ]]) 

得到更多可用的东西...

+1

谢谢,问题解决:) – Rahul