6

タブで区切られた 2 つの列を含むテキスト ファイルがあり、配列に読み込んでデータをプロットするなどの簡単な操作を実行したいデータが含まれています。2 番目の列のデータは科学表記法であり、10e-27 から 10e-50 の桁まで変化する非常に小さな値を取ることができます。たとえば、ここにデータのサンプルがあります

0.00521135   -1.197189e-31
0.00529274   -7.0272737e-32
0.00530917   -6.0163467e-32
0.00532565   -4.9990405e-32
0.00534218   -3.9747722e-32
0.00535876   -2.9457271e-32
0.0053754    -1.9094542e-32
0.00539208   -8.6847519e-33
0.00540882    1.7851373e-33
0.00542561    1.2288483e-32
0.00544245    2.2850705e-32
0.00545934    3.3432858e-32
0.00547629    4.4084594e-32
0.00549329    5.4765499e-32
0.00551034    6.5491709e-32

私のコードは次のようになります。

import numpy as np
import matplotlib.pyplot as plt
with open('data.dat', 'r') as f2:
lines = f2.readlines()
data = [line.split()for line in lines] 
data2 = np.asfarray(data)
x1 = data2[:,0]
y1 = data2[:,1]
plt.plot(x1, y1)
plt.show()

このコードを使用してサンプル データ (.dat 形式) ファイルをテストしましたが、正常に動作しているように見えますが、データ セットに対してこのコードを実行すると、次のエラーが発生します。

Traceback (most recent call last):
File "read_txt_col.py", line 17, in <module>
data2 = np.asfarray(data)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages  /numpy/lib/type_check.py", line 103, in asfarray
return asarray(a,dtype=dtype)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/numeric.py", line 235, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: setting an array element with a sequence.

誰か助けてください!!

4

1 に答える 1