zoukankan      html  css  js  c++  java
  • numpy中array和asarray的区别

    array和asarray都可以将结构数据转化为ndarray,但是主要区别就是当数据源是ndarray时,array仍然会copy出一个副本,占用新的内存,但asarray不会。

    举例说明:

    [python] view plain copy
     
    1. import numpy as np  
    2.   
    3. #example 1:  
    4. data1=[[1,1,1],[1,1,1],[1,1,1]]  
    5. arr2=np.array(data1)  
    6. arr3=np.asarray(data1)  
    7. data1[1][1]=2  
    8. print 'data1: ',data1  
    9. print 'arr2: ',arr2  
    10. print 'arr3: ',arr3  


    输出:

    [python] view plain copy
     
    1. data1:  
    2. [[1, 1, 1], [1, 2, 1], [1, 1, 1]]  
    3. arr2:  
    4. [[1]  
    5.  [1]  
    6.  [1]]  
    7. arr3:  
    8. [[1]  
    9.  [1]  
    10.  [1]]  


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

    [python] view plain copy
     
    1. import numpy as np  
    2.   
    3. #example 2:  
    4. arr1=np.ones((3,3))  
    5. arr2=np.array(arr1)  
    6. arr3=np.asarray(arr1)  
    7. arr1[1]=2  
    8. print 'arr1: ',arr1  
    9. print 'arr2: ',arr2  
    10. print 'arr3: ',arr3  

    输出:

    [python] view plain copy
     
    1. arr1:  
    2. [[ 1.  1.  1.]  
    3.  [ 2.  2.  2.]  
    4.  [ 1.  1.  1.]]  
    5. arr2:  
    6. [[ 1.  1.  1.]  
    7.  [ 1.  1.  1.]  
    8.  [ 1.  1.  1.]]  
    9. arr3:  
    10. [[ 1.  1.  1.]  
    11.  [ 2.  2.  2.]  
    12.  [ 1.  1.  1.]]  


    此时两者才表现出区别

  • 相关阅读:
    poj(1458)(最长公共子序列)
    二叉搜索树
    hdu1087
    poj3641(学习了)
    平年和闰年的由来。。。。
    Linux system函数返回值(转)
    VS2010单元测试(转)
    QT QTableWidget 用法总结(转)
    QT显示图片(转)
    Qt正则表达式类QRegExp(转)
  • 原文地址:https://www.cnblogs.com/dylancao/p/9023715.html
Copyright © 2011-2022 走看看