Python,如何将包含字符串的文本文件转换为列表,以便我可以计算这些数字的均值和方差

时间:2017-01-29 22:11:20

标签: python

我有一个包含字符串的文本文件: 21.8 18.1 19 23 26 17.8

我如何将其转换为列表,以便我可以使用它来计算平均值?

3 个答案:

答案 0 :(得分:0)

首先获取您要执行的文件的内容:

with open("filename.txt", "r") as infile:
    data = infile.read()

现在,要从您希望使用.split()方法的字符串中获取列表,请执行以下操作:

l = data.split()

现在l是一个字符串列表。要将其转换为数字列表,您可以使用列表推导,并执行:

l = [float(num) for num in l]

这会为您提供文件中数字的l列表。 希望它有所帮助!

答案 1 :(得分:0)

这个怎么样?

 l = [float(v) for v in open(filename).readline().split()]

答案 2 :(得分:0)

使用numpy.meannumpy.var函数的解决方案:

import numpy as np

# 21.8 18.1 19 23 26 17.8
with open('numbers.txt', 'r') as fh:
    numbers = fh.read().split(' ')
    np_arr = np.array(numbers).astype(np.float)
    avg = np.mean(np_arr)
    variance = np.var(np_arr)

print('avg: {:.2f}, variance: {:.2f}'.format(avg, variance))

输出:

avg: 20.95, variance: 8.71