登录
首页精彩阅读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]]


数据分析咨询请扫描二维码

最新资讯
更多
客服在线
立即咨询