2013-05-14 81 views
-2

什麼是在域[定量]的數字範圍(198)和(272)包括需要幫助的在Python

quant 
95 
189 
176 
200 
177 
340 
205 
203 
284 
88 
109 
83 
360 
67 
250 
56 
111 
439 
354 
143 

的平均價值發現AVERAGE是我試過的代碼。以上是我需要查找平均值的[quant]字段。

word_file = open('300000a.csv','r') 

firstLine = True 
for line in word_file: 
    if firstLine: 
     firstLine = False 
     continue 
    line = line.strip() 
    line = line.split (",") 
    field = int(line[0]) 

TotalMetalCount +=1 
if field >198 or field <272: 
    metalCounts += 1 
else: 
    metalCounts = 1 


countT +=1 
if field >198 or field <272: 
     count += 1 
+0

['reduce(lambda x,y:x + y,l)/ len(l)'](http://stackoverflow.com/questions/9039961/finding-the-average-of-a-list) – 2013-05-14 12:23:02

+3

@GrijeshChauhan請不要建議'減少',當你可以只使用'sum' – jamylak 2013-05-14 12:25:18

+0

@jamylak :) :) ..同意,謝謝! :) – 2013-05-14 12:26:55

回答

2

可以計算列表的使用sum並通過length除以平均值。

float(sum(my_list))/len(my_list) 

如果您只需要抓取幾個特定項目並根據可以對數組進行切片的平均值來提取平均值。

print(float(sum(my_list[198:272]))/len(my_list[198:272])) 

如果你有一個包含字符串,你需要將它們轉換爲整數,您可以使用和之前的列表不是整數的列表。

my_list_of_integers = [int(i) for i in my_list[198:272] 
print(float(sum(my_list_of_integers))/len(my_list_of_integers])) 
+1

看起來,@ user2370772需要不是所有元素,而只是其中的一部分。所以過濾列表將會對他有好處 – cleg 2013-05-14 12:27:14

+0

啊。是的,這可能是真的。 – eandersson 2013-05-14 12:28:23

+0

我試了第二個代碼,它出現了「錯誤」「無效的語法」,它顯示我紅色的INT ...我該怎麼辦 – user2370772 2013-05-14 13:09:38

0

如果你會做遠不止此數字,你應該使用numpy。然後將有多種方式將CSV文件作爲數組讀取。這些數組有一個.mean()方法,它可以做你認爲它的作用。

(但是如果你不做更多的數字,那麼@eandersson的答案更符合比例)。