熱線電話:13121318867

登錄
首頁精彩閱讀python中的list和array的不同之處
python中的list和array的不同之處
2018-04-04
收藏

python中的list和array的不同之處

python中的list是python的內置數據類型,list中的數據類不必相同的,而array的中的類型必須全部相同。

在list中的數據類型保存的是數據的存放的地址,簡單的說就是指針,并非數據,這樣保存一個list就太麻煩了
例如list1=[1,2,3,'a']需要4個指針和四個數據,增加了存儲和消耗cpu。
1、numpy中封裝的array有很強大的功能,里面存放的都是相同的數據類型
[python] view plain copy
    list1=[1,2,3,'a']    
    print list1    
        
    a=np.array([1,2,3,4,5])    
    b=np.array([[1,2,3],[4,5,6]])    
    c=list(a)   # array到list的轉換    
    print a,np.shape(a)    
    print b,np.shape(b)    
    print c,np.shape(c)   
運行結果:
[python] view plain copy
    [1, 2, 3, 'a'] # 元素數據類型不同,并且用逗號隔開    
    [1 2 3 4 5] (5L,) # 一維數組,類型用tuple表示    
    [[1 2 3]    
     [4 5 6]] (2L, 3L)    
    [1, 2, 3, 4, 5] (5L,)   

注意:

如果a是array,結果是:[1 2 3 4 5]
如果a是list,結果是:[1, 2, 3, 4, 5]
2、array的創建:參數既可以是list,也可以是元組.使用對應的屬性shape直接得到形狀

a=np.array((1,2,3,4,5))# 參數是元組    
    b=np.array([6,7,8,9,0])# 參數是list    
    c=np.array([[1,2,3],[4,5,6]])# 參數二維數組    
    print a  
    print b  
    print c  
    print c.shape 
結果:
    [1 2 3 4 5]  
    [6 7 8 9 0]  
    [[1 2 3]  
     [4 5 6]]  
    (2L, 3L) 
3、也可以直接改變屬性array的形狀,-1代表的是自己推算。這里并不是T, reshape(())也可以
1)
    c = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])  
    print c.shape # (3L, 4L)  
    c.shape=2,-1  
    print c.shape  
    c.shape=4,-1  
    print c.shape  

結果:
    (3L, 4L)  
    (2L, 6L)  
    (4L, 3L)  
2)
    c1 = np.array([[1, 2, 3, 4],[4, 5, 6, 7], [7, 8, 9, 10]])  
    d=c1.reshape((4,-1))#d 已變成4 行3 列  
    d[1:2]=66    #把第1行所有元素變為66  
    print d  
    d[1:3]=66    #把第1,2 兩行所有元素變為66  
    print d 
結果:
    [[ 1  2  3]  
     [66 66 66]  
     [ 6  7  7]  
     [ 8  9 10]]  
    [[ 1  2  3]  
     [66 66 66]  
     [66 66 66]  
     [ 8  9 10]]  
X1=np.array([[1,2],[3,5],[1,9],[3,4],[1,8],[3,14],[1,10],[31,4]])
nn = np.array([2,3,5,7])
print X1[nn]  #顯示第2,3,5,7 行的內容
結果:
[[ 1  9]
 [ 3  4]
 [ 3 14]
 [31  4]]


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢