Skip to main content
 首页 » 编程设计

python之在Python中计算列表中一列的平均值

2025年05月04日11开发

我必须计算特定嵌套列表中每一列的平均值,然后将平均值保存到新列表中。到目前为止,在我的代码中,我已将原始列表设置为嵌套列表并将其转置以在列中读取。我只是不确定如何对平均值进行编码。

#First open the data text file 
import re 
 
f = open('C:\Python27\Fake1.txt', 'r') 
 
#Convert to a nested list 
nestedlist = [] 
q = f.read() 
f.close() 
numbers = re.split('\n', q) #Splits the \n and \t out of the list 
newlist = [] 
for row in numbers: 
   newlist.append(row.split('\t')) 
 
 
#Reading in columns 
def mytranspose(nestedlist): 
   list_prime = [] 
   for i in range(len(nestedlist[0])): 
          list_prime.append([]) 
   for row in nestedlist: 
          for i in range(len(row)): 
                 list_prime[i].append(row[i]) 
   return(list_prime) 
print (mytranspose(newlist)) 
 
 
#Average of Columns 
def myaverage(nestedlist): 
   avg_list = [] 
   a = 0 
   avg = 0 
   for i in newlist: 
          a = sum(newlist[i]) 
          avg = a/len(row) 
          avg_list.append(avg[i]) 
   return(list_prime) 
 
print(myaverage(newlist)) 

请您参考如下方法:

这里有一个更简单的方法来完成整个事情:

with open('C:\Python27\Fake1.txt', 'r') as f: 
    data = [map(float, line.split()) for line in f] 
 
num_rows = len(data) 
num_cols = len(data[0]) 
 
totals = num_cols * [0.0] 
for line in data: 
    for index in xrange(num_cols): 
        totals[index] += line[index] 
 
averages = [total / num_rows for total in totals] 
print averages 

不过,我建议使用 numpy对于这种事情,因为它变得微不足道(而且速度更快):

import numpy as np 
data = np.loadtxt('C:\Python27\Fake1.txt') 
print data.mean(0)