① python 中 輸入一個數值列表,並求出其平均值
a=[1,2,3,4,5,6,7,8,9]
printrece(lambdax,y:x+y,a)/len(a)
以上。
② python Dataframe 對每一列求均值,然後加在最後一行怎麼做
您好,我來為您解答: 你可以在R中直接call X,會看到已經改成你要的結果了,第一二列的名字都是「good」。 只是用View 函數查看X的時候,第二列會自動顯示為「good.1" 如果我的回答沒能幫助您,請繼續追問。
③ 用python求數據表中數據的均值與方差
以下為代碼:
numstr = input("請輸入全部數據:用英文逗號(,),中文逗號(,),
空格( ),製表符(tab鍵)或換行(請一次性復制過來)中的一種統一分隔數據:")
if "," in numstr:
numlist = numstr.split(",")
elif "," in numstr:
numlist = numstr.split(",")
elif " " in numstr:
numlist = numstr.split(" ")
elif " " in numstr:
numlist = numstr.split(" ")
elif " " in numstr:
numlist = numstr.split(" ")
else:
numlist = [numstr]
numlist = list(map(lambda x:x.strip(",").strip(",").
strip(" ").strip(" ").strip(" "), numlist))
for i in numlist.():
try:
a = float(i)
except:
numlist.remove(i)
print("已過濾字元串:%s"%i)
#好了,上面很多隻是方便用戶而已(但還是有一些有用的),主要是下面
numlist = list(map(lambda x:float(x), numlist))#所有字元串轉為浮點
print("最終數列:",numlist)#輸出最終數列,進行核對
average = sum(numlist)/len(numlist)#用數列和除以出列長度得到平均數
variance = 0#方差,先記為0
for i in numlist:#遍歷列表
variance += (i - average) ** 2#反正就是公式對吧,先加進去
variance /= len(numlist)#還是公式,那一長串還得除以一個數列長度
print("均值:%.2f 方差:%.2f"%(average, variance))#分兩行輸出
以下為輸出效果:
請輸入全部數據:用英文逗號(,),中文逗號(,),空格( ),製表符(tab鍵)或換行(請一次性復制過來)中的一種統一分隔數據:38,22,99,10,99,7, 25,,40
已過濾字元串:
最終數列: [38.0, 22.0, 99.0, 10.0, 99.0, 7.0, 25.0, 40.0]
均值:42.50
方差:1181.75
以下為解析:
平均值的思路就是總和除以列表長度,方差的思路就是把所有的(x-均值)²加起來,最後再除以一個長度即可。
本程序的優點:輸入時逗號後出現空格與不小心多打逗號等情況都不會出問題,可以接受小數,可以先輸出最終數列以供核對。
④ python計算一個序列的平均值的方法
python計算一個序列的平均值的方法
這篇文章主要介紹了python計算一個序列的平均值的方法,涉及Python遞歸遍歷與數學計算的相關技巧,具有一定參考借鑒價值,分享給大家供大家參考。
具體如下:
def average(seq, total=0.0):
num = 0
for item in seq:
total += item
num += 1
return total / num
如果序列是數組或者元祖可以簡單使用下面的代碼
def average(seq):
return float(sum(seq)) / len(seq)
希望本文所述對大家的Python程序設計有所幫助。
⑤ 數據分析員用python做數據分析是怎麼回事,需要用到python中的那些內容,具體是怎麼操作的
大數據!大數據!其實是離不開數據二字,但是總體來講,自己之前對數據的認知是不太夠的,更多是在關注技術的提升上。換句話講,自己是在做技術,這些技術處理的是數據,而不能算是自己是在做數據的。大規模數據的處理是一個非常大的課題,但是這一點更偏向於是搞技術的。
與數據分析相關的Python庫很多,比如Numpy、pandas、matplotlib、scipy等,數據分析的操作包括數據的導入和導出、數據篩選、數據描述、數據處理、統計分析、可視化等等。接下來我們看一下如何利用Python完成數據的分析。
生成數據表
常見的生成方法有兩種,第一種是導入外部數據,第二種是直接寫入數據,Python支持從多種類型的數據導入。在開始使用Python進行數據導入前需要先導入pandas庫,為了方便起見,我們也同時導入Numpy庫。代碼是最簡模式,裡面有很多可選參數設置,例如列名稱、索引列、數據格式等等。
檢查數據表
Python中使用shape函數來查看數據表的維度,也就是行數和列數。你可以使用info函數查看數據表的整體信息,使用dtypes函數來返回數據格式。Isnull是Python中檢驗空值的函數,你可以對整個數據表進行檢查,也可以單獨對某一列進行空值檢查,返回的結果是邏輯值,包含空值返回True,不包含則返回False。使用unique函數查看唯一值,使用Values函數用來查看數據表中的數值。
數據表清洗
Python中處理空值的方法比較靈活,可以使用Dropna函數用來刪除數據表中包含空值的數據,也可以使用fillna函數對空值進行填充。Python中dtype是查看數據格式的函數,與之對應的是astype函數,用來更改數據格式,Rename是更改列名稱的函數,drop_plicates函數刪除重復值,replace函數實現數據替換。
數據預處理
數據預處理是對清洗完的數據進行整理以便後期的統計和分析工作,主要包括數據表的合並、排序、數值分列、數據分組及標記等工作。在Python中可以使用merge函數對兩個數據表進行合並,合並的方式為inner,此外還有left、right和outer方式。使用ort_values函數和sort_index函數完成排序,使用where函數完成數據分組,使用split函數實現分列。
數據提取
主要是使用三個函數:loc、iloc和ix,其中loc函數按標簽值進行提取,iloc按位置進行提取,ix可以同時按標簽和位置進行提取。除了按標簽和位置提起數據以外,還可以按具體的條件進行數據,比如使用loc和isin兩個函數配合使用,按指定條件對數據進行提取。
數據篩選匯總
Python中使用loc函數配合篩選條件來完成篩選功能,配合sum和 count函數還能實現excel中sumif和countif函數的功能。Python中使用的主要函數是groupby和pivot_table。groupby是進行分類匯總的函數,使用方法很簡單,制定要分組的列名稱就可以,也可以同時制定多個列名稱,groupby 按列名稱出現的順序進行分組。
⑥ python如何求列表的平均值
sum函數返回列表和,len函數返回列表長度,剩下的就是一個除法。
⑦ Python編程求平均值的兩種方法是
方法一:
scores = [91, 95, 97, 99, 92, 93, 96, 98]
scores2 = []
avg = sum(scores) / len(scores)
print('平均成績是:{}'.format(avg))
for i in scores:
if i avg># 少於平均分的成績放到新建的空列表中
scores2.append(i)
print('低於平均成績的有:{}'.format(scores2))
方法二:
導入函數庫
import numpy as np # 導入 numpy庫,as 即為導入的庫起一個別稱,別稱為np
scores1 = [91, 95, 97, 99, 92, 93, 96, 98]
scores2 = []
average = np.mean(scores1) # 一行解決。
print('平均成績是:{}'.format(average))
# 下面展示一種NumPy數組的操作,感興趣的同學可以自行去學習哈。
scores3 = np.array(scores1)
print('低於平均成績的有:{}'.format(scores3[scores3
⑧ python如何定義一個函數求列表各項數據平均值
# coding = GBK
a =[1,2,3,4,5]
sum=0
b = len(a)
print("這個數組的長度為:",b)
for i in a:
sum =sum +i
print("這個數組之和為:",sum)
print("這個數組平均數為",sum/b)
或
import sys
sum = 0
cnt = 0
f = open('1.txt', 'r')
files = f.readline()
while (files ):
sum = sum + float(files .split(",")[0])
cnt = cnt + 1
files = f.readline()
print(sum / cnt)
f.close()
或者。
#!/usr/bin/env pythonimport timeimport numpy as np
dd = np.random.randint(0, 20, size=(2*1000*1000))t_start = time.clock()avg_sum1 =
0.0BlockOffset = 0 while BlockOffset < len(dd):
if dd[BlockOffset + 1] <= 10:
avg_sum1 += dd[BlockOffset + 1] * 0.1
else:
avg_sum1 += dd[BlockOffset + 0] * 0.01
BlockOffset += 2print('Avg: ' + str(avg_sum1 / len(dd) / 2)) print('Exe time: ' +
str(time.clock() - t_start))
(8)python空值填充列均值擴展閱讀:
python 實現求和、計數、最大最小值、平均值、中位數、標准偏差、百分比。
importsys
classStats:
def__init__(self, sequence):
# sequence of numbers we will process
# convert all items to floats for numerical processing
self.sequence=[float(item)foriteminsequence]
defsum(self):
iflen(self.sequence) <1:
returnNone
else:
returnsum(self.sequence)
defcount(self):
returnlen(self.sequence)
defmin(self):
iflen(self.sequence) <1:
returnNone
else:
returnmin(self.sequence)
defmax(self):
iflen(self.sequence) <1:
returnNone
else:
returnmax(self.sequence)
defavg(self):
iflen(self.sequence) <1:
returnNone
else:
returnsum(self.sequence)/len(self.sequence)
defmedian(self):
iflen(self.sequence) <1:
returnNone
else:
self.sequence.sort()
returnself.sequence[len(self.sequence)//2]
defstdev(self):
iflen(self.sequence) <1:
returnNone
else:
avg=self.avg()
sdsq=sum([(i-avg)**2foriinself.sequence])
stdev=(sdsq/(len(self.sequence)-1))**.5
returnstdev
defpercentile(self, percentile):
iflen(self.sequence) <1:
value=None
elif(percentile >=100):
sys.stderr.write('ERROR: percentile must be < 100. you supplied: %s '%percentile)
value=None
else:
element_idx=int(len(self.sequence)*(percentile/100.0))
self.sequence.sort()
value=self.sequence[element_idx]
returnvalue
⑨ 像Excel一樣使用Python(一)
在進行數據處理時,如果數據簡單,數量不多,excel是大家的首選。但是當數據眾多,類型復雜,需要靈活地顯示切片、進行索引、以及排序時,python會更加方便。藉助python中的numpy和pandas庫,它能快速完成各種任務,包括數據的創建、檢查、清洗、預處理、提取、篩選、匯總、統計等。接下來幾篇文章,將以excel為參照,介紹python中數據的處理。
提到pandas,那就不得不提兩類重要的數據結構,Series和DataFrame,這兩類數據結構都是建立在numpy的數組array基礎上。與array相比,Series是一個一維的數據集,但是每個數據元素都帶有一個索引,有點類似於字典。而DataFrame在數組的基礎上,增加了行索引和列索引,類似於Series的字典,或者說是一個列表集。
所以在數據處理前,要安裝好numpy , pandas。接下來就看看如何完成一套完整的數據操作。
創建數據表的方法分兩種,分別是從外部導入數據,以及直接寫入數據。
在python中,也可外部導入xlsx格式文件,使用read_excel()函數:
import pandas as pd
from pandas import DataFrame,Series
data=DataFrame(pd.read_excel('c:/python27/test.xlsx'))
print data
輸出:
Gene Size Function
0 arx1 411 NaN
1 arx2 550 monooxygenase
2 arx3 405 aminotransferase
……
即:調用pandas中read_excel屬性,來讀取文件test.xlsx,並轉換成DataFrame格式,賦給變數data。在每一行後,自動分了一個索引值。除了excel,還支持以下格式文件的導入和寫入:
Python寫入的方法有很多,但還是不如excel方便。常用的例如使用相等長度的字典或numpy數組來創建:
data1 = DataFrame(
{'Gene':['arx1','arx2','arx3'],
'Size':[411,550,405],
'Func':[np.NaN,'monooxygenase','aminotransferase ']})
print data1
輸出
Func Gene Size
0 NaN arx1 411
1 monooxyg arx2 550
2 amino arx3 405
分配一個行索引後,自動排序並輸出。
在python中,可以使用info()函數查看整個數據的詳細信息。
print data.info()
輸出
RangeIndex: 7 entries, 0 to 6
Data columns (total 3 columns):
Gene 7 non-null object
Size 7 non-null int64
Function 5 non-null object
dtypes: int64(1), object(2)
memory usage: 240.0+ bytes
None
此外,還可以通過shape, column, index, values, dtypes等函數來查看數據維度、行列組成、所有的值、 數據類型:
print data1.shape
print data1.index
print data1.columns
print data1.dtypes
輸出
(3, 3)
RangeIndex(start=0, stop=3, step=1)
Index([u'Func', u'Gene', u'Size'], dtype='object')
Func object
Gene object
Size int64
dtype: object
在excel中可以按「F5」,在「定位條件」中選擇「空值」,選中後,輸入替換信息,再按「Ctrl+Enter」即可完成替換。
在python中,使用函數 isnull 和 notnull 來檢測數據丟失, 包含空值返回True,不包含則返回False。
pd.isnull(data1)
pd.notnull(data1)
也可以使用函數的實例方法,以及加入參數,對某一列進行檢查:
print data1['Func'].isnull()
輸出
Func Gene Size
0 True False False
1 False False False
2 False False False
再使用fillna對空值進行填充:
data.fillna(value=0)
#用0來填充空值
data['Size'].fillna(data1['Size'].mean())
#用data1中Size列的平均值來填充空值
data['Func']=data['Func'].map(str.strip)
#清理Func列中存在的空格
Excel中可以按「Ctrl+F」,可調出替換對話框,替換相應數據。
Python中,使用replace函數替換:
data['Func'].replace('monooxygenase', 'oxidase')
將Func列中的'monooxygenase'替換成'oxidase'。
Excel中,通過「數據-篩選-高級」可以選擇性地看某一列的唯一值。
Python中,使用unique函數查看:
print data['Func'].unique()
輸出
[nan u'monooxygenase' u'aminotransferase' u'methyltransferase']
Excel中,通過UPPER、LOWER、PROPER等函數來變成大寫、小寫、首字母大寫。
Python中也有同名函數:
data1['Gene'].str.lower()
Excel中可以通過「數據-刪除重復項」來去除重復值。
Python中,可以通過drop_plicates函數刪除重復值:
print data['Func'].drop_plicates()
輸出
0 NaN
1 monooxygenase
2 aminotransferase
3 methyltransferase
Name: Func, dtype: object
還可以設置「 keep=』last』 」參數,後出現的被保留,先出現的被刪除:
print data['Func'].drop_plicates(keep='last')
輸出
2 aminotransferase
3 methyltransferase
6 monooxygenase
8 NaN
Name: Func, dtype: object
內容參考:
Python For Data Analysis
藍鯨網站分析博客,作者藍鯨(王彥平)
⑩ python(pandas模塊)
1.什麼是pandas? numpy模塊和pandas模塊都是用於處理數據的模塊。 numpy主要用於針對數組進行統計計算,處理數字數據比較方便。 pandas除了可以處理數字數據,還可...