我有一個文本文件,其中包含2個由製表符分隔的列,包含一些數據,我想讀入數組並執行一些簡單的操作數據。第二欄中的數據採用科學計數法,可能會採用非常小的數值,例如數量級從10e-27到10e-50。比如這裏是數據的樣本讀取從兩列文本文件浮動到Python中的數組時出錯
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.
有人請幫忙!!
有很多關於這個SO答案:http://stackoverflow.com/ question/4674473/valueerror-setting-an-array-element-with-a-sequence http://stackoverflow.com/questions/13310347/numpy-valueerror-setting-an-array-element-with-a-sequence-this -message-may-app基本問題是你看起來有不同長度的序列。我會嘗試通過二分查找來查找數據中的問題:加載一半的數據。成功的?添加一半數據並測試。成功的?再加上另一半,等等。 – hughdbrown