2017-06-22 174 views
0

經過一段長時間的計算後,我得到了包含以下字符串的文件。ValueError:無法將字符串轉換爲浮點數:「nbformat」:4

(每個字符串用「\ t」的分離,並具有「\ n」個在每一行的末尾。)

0.0000008375000 829.685601736 555.939928236 
0.0000008376000 829.511081539 555.889353246 
0.0000008377000 829.336613968 555.838785601 
0.0000008378000 829.162199002 555.7882253 
0.0000008379000 828.987836621 555.737672342 
0.0000008380000 828.813526805 555.687126727 
0.0000008381000 828.639269533 555.636588453 

然後我試圖繪製這些文件。 (該文件的名稱以P開頭)

fList = np.array(gl.glob("P*")) 
for i in fList: 
    f = open(i, "r") 
    data = f.read() 
    data = data.replace("\n", "\t") 
    data = np.array(data.split("\t"))[:-1].reshape(-1,3) 
    plt.plot(data[:,0], data[:,1], label=i) 

然後我結束了以下錯誤。

(錯誤指針指示這發生在線路plt.plot(數據[:,0],數據[:,1],標記= 1)

ValueError: could not convert string to float: "nbformat": 4, 

我已經看了一些其他的教程或演練,但不幸的是,無法理解如何解決這個問題。任何幫助或建議將非常感激。

回答

1

您可以直接使用numpy的文件中讀入三個數組:

import numpy as np 
import matplotlib.pyplot as plt 
from glob import glob 

fList = glob("P*") 
for i in fList: 
    x,y,z = np.loadtxt(i, unpack=True) 
    plt.plot(x,y, label=i) 

plt.legend() 
plt.show() 
+1

或者一個陣列爲此事'數據= np.loadtxt(我)' – jadsq

+0

謝謝ImportanceOfBeingEmest和jadsq! 我發現問題是文件名本身:(。 代碼工作正常。我已更改文件名明確具有唯一的名稱,以便它不會干涉任何操作。 –

+0

哦,謝謝你的類更新。我想我會接受答案,顯然不是。 –

相關問題