如何在.txt fi中查找值的平均值

2024-04-25 23:27:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要找到.txt文件中给定值的最小值、最大值和平均值。我已经找到了最小值和最大值,但我正在努力寻找平均值。我还没有写任何代码来确定平均值,因为我不知道从哪里开始。我现在的代码是:

def summaryStats():
    filename = input("Enter a file name: ")
    file = open(filename)
    data = file.readlines()
    data = data[0:]
    print("The minimum value is " + min(data))
    print("The maximum value is " + max(data))

我需要能够返回这些值的平均值。截至目前,.txt文档具有以下值:

893
255
504

我正在努力寻找这些的平均值,因为每次我试图找到总和,我的结果都是0。

谢谢 (抱歉,我只是在学习处理文件)


Tags: 文件the代码txtinputdataisvalue
2条回答

您应该首先将从文件检索到的数据转换为整数,因为您的数据列表包含字符串而不是数字。在转换为整数平均值之后,可以很容易地找到:

为什么需要转换为int?

>>> '2' > '10'  #strings are compared lexicographically
True

代码:

def summaryStats():
    filename = input("Enter a file name: ")
    with open(filename) as f:
        data = [int(line) for line in f]

    print("The minimum value is ", min(data))
    print("The maximum value is ", max(data))
    print("The average value is ", sum(data)/len(data))

输出:

Enter a file name: abc1
The minimum value is  255
The maximum value is  893
The average value is  550.6666666666666

不要重新发明轮子,使用numpy它需要几个指令。可以将txt文件导入numpy数组,然后使用内置函数执行所需的操作:

>>> import numpy as np
>>> data = np.loadtxt('data.txt')
>>> np.average(data)
 550.666666667
>>> np.max(data)
 893.0
>>> np.min(data)
 255.0

相关问题 更多 >