我有文件,其中的数据形式为

 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


请帮助我正确地处理数据。

最佳答案

您可以使用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 ]])


以获得更多可用的...

10-06 00:29