ValueError:无法将字符串转换为float:“nbformat”:4

时间:2017-06-22 12:31:26

标签: python numpy matplotlib glob

经过一些长时间的计算,我得到的文件包含以下字符串。

(每个字符串用“\ 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],label = i) )< / p>

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

我查了一些其他教程或演练,但不幸的是,无法理解如何解决这个问题。任何帮助或建议都会非常感激。

1 个答案:

答案 0 :(得分: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()