美文网首页Numpy
np.array和np.asarray区别

np.array和np.asarray区别

作者: yalesaleng | 来源:发表于2018-07-16 15:48 被阅读988次

    array和asarray都可将结构数据转换为ndarray类型。

    但是主要区别就是当数据源是ndarray时,
    array仍会copy出一个副本,占用新的内存,但asarray不会。

    For example:

    import numpy as np  
      
    #example 1:  
    data1=[[1,1,1],[1,1,1],[1,1,1]]  
    arr2=np.array(data1)  
    arr3=np.asarray(data1)  
    data1[1][1]=2  
    print 'data1:\n',data1  
    print 'arr2:\n',arr2  
    print 'arr3:\n',arr3 
    

    output:

    data1:  
    [[1, 1, 1], [1, 2, 1], [1, 1, 1]]  
    arr2:  
    [[1 1 1]  
     [1 1 1]  
     [1 1 1]]  
    arr3:  
    [[1 1 1]  
     [1 1 1]  
     [1 1 1]] 
    

    可见array和asarray没有区别,都得元数据进行了复制。

    import numpy as np  
      
    #example 2:  
    arr1=np.ones((3,3))  
    arr2=np.array(arr1)  
    arr3=np.asarray(arr1)  
    arr1[1]=2  
    print 'arr1:\n',arr1  
    print 'arr2:\n',arr2  
    print 'arr3:\n',arr3  
    

    output:

    arr1:  
    [[ 1.  1.  1.]  
     [ 2.  2.  2.]  
     [ 1.  1.  1.]]  
    arr2:  
    [[ 1.  1.  1.]  
     [ 1.  1.  1.]  
     [ 1.  1.  1.]]  
    arr3:  
    [[ 1.  1.  1.]  
     [ 2.  2.  2.]  
     [ 1.  1.  1.]] 
    

    相关文章

      网友评论

        本文标题:np.array和np.asarray区别

        本文链接:https://www.haomeiwen.com/subject/zisbpftx.html