Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我想从txt文件中提取x和y值_Python_Numpy_Scipy - Fatal编程技术网

Python 我想从txt文件中提取x和y值

Python 我想从txt文件中提取x和y值,python,numpy,scipy,Python,Numpy,Scipy,我有一些将x和y值存储到txt文件中的代码。每次我告诉程序存储数据时,txt文件都会在每一行上存储值 在txt文件中的内容如下: [1.0、1.80、2.0、1.80、3.0、0.70等] 我试图使用np.genfromtxt函数提取值,但我一直得到值。我通读了文档,但似乎无法解释它 如何将这些x和y值存储到变量中,以便在txt文件之外进一步使用它们?使用ast模块 例: 输出: 如果所有这些括号和空格的结构与您发布的内容完全相同: x = [] y = [] with open('filena

我有一些将x和y值存储到txt文件中的代码。每次我告诉程序存储数据时,txt文件都会在每一行上存储值

在txt文件中的内容如下:

[1.0、1.80、2.0、1.80、3.0、0.70等]

我试图使用np.genfromtxt函数提取值,但我一直得到值。我通读了文档,但似乎无法解释它

如何将这些x和y值存储到变量中,以便在txt文件之外进一步使用它们?

使用ast模块

例:

输出:


如果所有这些括号和空格的结构与您发布的内容完全相同:

x = []
y = []
with open('filename.txt') as f:
    for line in f:
        pairs = line[1:-2].split('),')
        for p in pairs:
            x.append(float(p.split(', ')[0].strip()[1:]))
            y.append(float(p.split(', ')[1].strip()))

# print(x, y)
# [1.0, 2.0, 3.0] [1.8, 1.8, 0.7]

每一行是否以[开头,以]结尾?是的,例如[1.0,1.80,2.0,1.80,3.0,0.70]这几行除了您手动保存它们之外是否有其他意义,或者整个文件的所有x值都应该放在一个变量中,所有y值放在第二个变量中?谢谢您的帮助,但是上面的代码对我有用。很好,欢迎光临。但是,我对上面问题的答案很感兴趣:对于x和y数据,您需要两个数组还是一个x-y元组列表?对于x和y数据,我只需要两个数组。我只是用matplotlib绘制它,matplotlib正在工作。但是,如果我可以在这里说明的话,这正是我的脚本提供的结果,与ast.literal\u eval解决方案相比。您可以立即执行plt.plotx,y。
[(1.0, 1.8), (2.0, 1.8), (3.0, 0.7)]
[(1.0, 1.8), (2.0, 1.8), (3.0, 0.7)]
[(1.0, 1.8), (2.0, 1.8), (3.0, 0.7)]
x = []
y = []
with open('filename.txt') as f:
    for line in f:
        pairs = line[1:-2].split('),')
        for p in pairs:
            x.append(float(p.split(', ')[0].strip()[1:]))
            y.append(float(p.split(', ')[1].strip()))

# print(x, y)
# [1.0, 2.0, 3.0] [1.8, 1.8, 0.7]