⑴ python中內置數據類型list,tuple,dict,set的區別和用法
python 中list,tuple,dict,set是最常用的集合類型。
list列表,相當於一個數組,不過list的長度是自動變化的而且列表元素自由的,不必每個元素都是同一種類型。它的簡潔的定義方式是a=[]。有序組合
tuple也是一個組合。不過tuple在定義好之後就不能再變化。它的簡差悶潔的定義方式是a=1,3也可以是a=(1,3).有序組合。
dict是字典類型。也就是鍵值對類型。鍵名不可以重復,並且不可以變化(字元串就符合這個要求,常用字元串作為鍵名)。它的肆慶稿簡潔的定義方式是a={}.無序組合(意思就是你無法按照添加的順序對他進行遍歷)。
set是set類型(不好翻譯,用的也少)。也是一個無序的組合,元素是互斥的,也就不會出現相同的元素。可以把一個序列轉換成無重復元素的set.無序組合。
以下是使裂孝用的示例代碼。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
a_tuple=(1,3423,'34')
a_list=[12,12.34,'sds']
a_dict={'key1':1,'key2':2}
a_set=set('2323')
for t in a_tuple:
print('%s in tuple'%t)
print('*'*10)
for l in a_list:
print('%s in list'%l)
print('*'*10)
for k,v in a_dict.items():
print('key=%s,value=%s in dict'%(k,v))
print('*'*10)
for s in a_set:
print('%s in set'%s)
print('*'*10)
⑵ Python通過數據多少進行分類(python分幾類)
導讀:本篇文章首席CTO筆記來給大家介紹有關Python通過數據多少進行分類的相關內容,希望對大家有所幫助,一起來看看吧。
python數據類型有哪些數據類型是每種編程語言必備的屬性,只有給數據賦予明確的數據類型,計算機才能對數據進行處理運算,因此,使用正確的數據類型是十分有必要的,以下是Python編程常用的數據類型:
一、數字型
Python數字類型主要包括int(整型)、long(長整型)和float(浮點型),但是在Python3中就不再有long類型了。
1、int(整型)
在32位機器上,整數的位數是32位,取值范圍是-231~231-1,即-2147483648~214748364;在64位系統上,整數的位數為64位,取值范圍為-263~263-1,即9223372036854775808~9223372036854775807。
2、long(長整型)
Python長整型沒有指定位寬,但是由於機器內存有限,使用長的長整數數值也不可能無限大。
3、float(浮點型)
浮點型也就是帶有小數點的數,其精度和機器有關。
4、complex(復數)
Python還支持復數,復數由實數部分和虛數部分構成,可以用a+bj,或者complex(a,b)表示,復數的實部a和虛部b
都是浮點型。
二、字元串
在Python中,加了引號的字元都被認為是字元串,其聲明有三種方式,分別是:單引號、雙引號和三引號;Python中的字元串有兩種數據類型,分別是str類型和unicode類型,str類型採用的ASCII編碼,無法表示中文,unicode類型採用unicode編碼,能夠表示任意字元,包括中文和其他語言。
三、布爾型
和其他編程語言一樣,Python布爾類型也是用於邏輯運算,有兩個值:True(真)和False(假)。
四、列表
列表是Python中使用最頻繁的數據類型,集合中可以放任何數據類型,可對集合進行創建、查找、切片、增加、修改、刪除、循環和排序操作。
五、元組
元組和列表一樣,也是一種序列,與列表不同的是,元組是不可修改的,元組用」()」標識,內部元素用逗號隔開。
六、字典
字典是一種鍵值對的集合,是除列表以外Python之中最靈活的內置數據結構類型,列表是有序的對象集合,字典是無序的對象集合。
七、集合
集合是一個無序的、不重復的數據組合,它的主要作用有兩個,分別是去重和關系測試。
python對數據進行聚類怎麼顯示數據分類將其整理成數據集為:
[[1,0,"yes"],[1,1,"yes"],[0,1,"yes"],[0,0,"no"],[1,0,"no"]]
演算法過程:
1、計算原始的信息熵。
2、依次計算數據集中每個樣本的每個特徵的信息熵。
3、比較不同特徵信息熵的大小,選出信息熵最大的特徵值並輸出。
運行結果:
col:0curInfoGain:2.37744375108baseInfoGain:0.0
col:1curInfoGain:1.37744375108baseInfoGain:2.37744375108
bestInfoGain:2.37744375108bestFeature:0
結果分析:
說明按照第一列,即有無喉結這個特徵來進行分類的效果更好。
思考:
1、能否利用決策樹演算法,將樣本最終的分類結果進行輸出?如樣本1,2,3屬於男性,4屬於女性。
2、示常式序生成的決策樹只有一層,當特徵量增多的時候,如何生成具有多層結構的決策樹?
3、如何評判分類結果的好壞?
在下一篇文章中,我將主要對以上三個問題進行分析和解答。如果您也感興趣,歡迎您訂閱我的文章,也可以在下方進行評論,如果有疑問或認為不對的地方,您也可以留言,我將積極與您進行解答。
完整代碼如下:
frommathimportlog
"""
計算信息熵
"""
defcalcEntropy(dataset):
diclabel={}##標簽字典,用於記錄每個分類標簽出現的次數
forrecordindataset:
label=record[-1]
iflabelnotindiclabel.keys():
diclabel[label]=0
diclabel[label]+=1
###計算熵
entropy=0.0
cnt=len(dataset)
forlabelindiclabel.keys():
prob=float(1.0*diclabel[label]/cnt)
entropy-=prob*log(prob,2)
returnentropy
definitDataSet():
dataset=[[1,0,"yes"],[1,1,"yes"],[0,1,"yes"],[0,0,"no"],[1,0,"no"]]
label=["male","female"]
returndataset,label
####拆分dataset,根據指定的過濾選項值,去掉指定的列形成一個新的數據集
defsplitDataset(dataset,col,value):
retset=[]##拆分後的數據集
forrecordindataset:
ifrecord[col]==value:
recedFeatVec=record[:col]
recedFeatVec.extend(record[col+1:])###將指定的列剔除
retset.append(recedFeatVec)###將新形成的特徵值列表追加到返回的列表中
returnretset
###找出信息熵增益最大的特徵值
###參數:
###dataset:原始的數據集
deffindBestFeature(dataset):
numFeatures=len(dataset[0])-1###特徵值的個數
baseEntropy=calcEntropy(dataset)###計算原始數據集的熵
baseInfoGain=0.0###初始信息增益
bestFeature=-1###初始的最優分類特徵值索引
###計算每個特徵值的熵
forcolinrange(numFeatures):
features=[record[col]forrecordindataset]###提取每一列的特徵向量如此處col=0,則features=[1,1,0,0]
uniqueFeat=set(features)
curInfoGain=0###根據每一列進行拆分,所獲得的信息增益
forfeatValinuniqueFeat:
subDataset=splitDataset(dataset,col,featVal)###根據col列的featVal特徵值來對數據集進行劃分
prob=1.0*len(subDataset)/numFeatures###計運算元特徵數據集所佔比例
curInfoGain+=prob*calcEntropy(subDataset)###計算col列的特徵值featVal所產生的信息增益
#print"col:",col,"featVal:",featVal,"curInfoGain:",curInfoGain,"baseInfoGain:",baseInfoGain
print"col:",col,"curInfoGain:",curInfoGain,"baseInfoGain:",baseInfoGain
ifcurInfoGainbaseInfoGain:
baseInfoGain=curInfoGain
bestFeature=col
returnbaseInfoGain,bestFeature###輸出最大的信息增益,以獲得該增益的列
dataset,label=initDataSet()
infogain,bestFeature=findBestFeature(dataset)
print"bestInfoGain:",infogain,"bestFeature:",bestFeature
利用Python進行數據分析(11)-高階應用category本文中介紹的是pandas的高階應用-分類數據category
一個列中經常會包含重復值,這些重復值是一個小型的不同值的集合。
unique()和value_counts()能夠從數組中提取到不同的值並分別計算它們的頻率
維度表包含了不同的值,將主要觀測值存儲為引用維度表的整數鍵
不同值的數組被稱之為數據的類別、字典或者層級
如果不指定順序,分類轉換是無序的。我們可以自己顯式地指定
如果在特定的數據集上做了大量的數據分析,將數據轉成分類數據有大大提高性能
特殊屬性cat提供了對分類方法的訪問
在機器學習或統計數據中,通常需要將分類數據轉成虛擬變數,也稱之為one-hot編碼
python標准類型的分類?如果讓我們描述標准類型,我們也許會稱它們是Python的「基本內建數據對象原始類型"。「基本」是指這些類型都是Python提供的標准或核心類型。「內建」是由於這些類型是Python默認就提供的。「數據」是因為他們用於一般數據存儲。「對象」是因為對象是數據和功能的默認抽象。「原始」是因為這些類型提供的是最底層的粒度數據存儲。「類型」是因為他們就是數據類型。不過,上面這些描述實際上並沒有告訴你每個類型如何工作,以及它們能發揮什麼作用。事實上,幾個類型共享某一些的特性,比如功能的實現手段,另一些類型則在訪問數據值方面有一些共同之處。我們感興趣的還有這些類型的數據如何更新,以及它們能提供什麼樣的存儲。有3種不同的模型可以幫助我們對基本類型進行分類,每種模型都展示給我們這些類型之間的相互關系。這些模型可以幫助我們更好的理解類型之間的相互關系以及他們的工作原理。
結語:以上就是首席CTO筆記為大家整理的關於Python通過數據多少進行分類的相關內容解答匯總了,希望對您有所幫助!如果解決了您的問題歡迎分享給更多關注此問題的朋友喔~
⑶ python基礎教程-數據類型詳解
python提供了多種的數據類型,用來存放數據。其中數據類型中又包括:字元串,布爾類型,整數,浮點數,數字,列表,元組,字典,日期。
1、字元串
a='this is string'print aa="this is string"print aa='''this is stringthis is stringthis is string'''print a
布爾類型
常見的用於循環判斷中
整數
a=int(80.9741)print a
浮點數
a= float(80.974)print a
字元類型的轉換
int(x [,base]) 將x轉換為一個整數
float(x ) 將x轉換到一個浮點數
complex(real [,imag]) 創建一個復數
str(x) 將對象x轉換為字元串
repr(x) 將對象x轉換為表達式字元串
eval(str) 用來計算在字元串中的有效Python表達式,並返回一個對象
tuple(s) 將序列s轉換為一個元組
list(s) 將序列s轉換為一個列表
chr(x) 將一個整數轉換為一個字元
unichr(x) 將一個整數轉換為Unicode字元
ord(x) 將一個字元轉換為它的整數值
hex(x) 將一個整數轉換為一個十六進制字元串
oct(x) 將一個整數轉換為一個八進制字元串
列表
L1 = [1,2,3]print L1L2 = ['abc']print L2L3 = ["a","b","c"]print L3L = list("Python")print Lprint L[0]print L[3]print L[-1]
Python的元組與列表類似,不同之處在於元組的元素不能修改;元組使用小括弧(),列表使用方括弧[];元組創建很簡單,只需要在括弧中添加元素,並使用逗號(,)隔開即可,例如:
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";
字典(dictionary)是除列表之外python中最靈活的內置數據結構類型。列表是有序的對象結合,字典是無序的對象集合。兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。
字典由鍵和對應的值組成。字典也被稱作關聯數組或哈希表。基本語法如下:
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'};
時間日期
import time, datetime;localtime = time.localtime(time.time())today = datetime.date.today()print "Local current time :", today