3

1 列だけのデータ ファイルがあります。左に2列、右に2列追加したいです。

これを行う簡単な方法は、numpy 配列を使用することだと思いました。これが私が試したことです。

z = np.loadtxt('data_file.dat')

new = np.zeros((z.shape[0],5))

for i in range(z.shape[0]):
    new[i,0] = 'w040_0731.QR'
    new[i,1] = 1666.000
    new[i,2] = z[i]
    new[i,3] = 0.10000
    new[i,4] = 7

z.close()

しかし、うまくいきませんでした-numpy配列は数字と文字列が混在するように設計されていないためだと思いますか? エラーメッセージが表示されました:

could not convert string to float: w040_0731.QR

私が持っているテキスト ファイルの左に 2 列、右に 2 列を追加する最も効率的な方法を教えてください。

4

1 に答える 1

4

これは、列がスペースで区切られていると仮定してそれを行う必要がありますが、使用しませんnumpy

with open('data_file.dat') as in_file, open('output', 'w') as out_file:
    for line in in_file:
         data = float(line.strip())
         print >> outfile "'w040_0731.QR'", '1666.000', data, '0.10000', '7' 
于 2012-11-21T12:48:26.810 に答える