numpy的复制

    技术2025-05-05  15

    b=a b和a是对同一个对象的引用,互相影响b = a[:] b和a不是同一对象,b是a的切片,但是b和a的数据会相互影响b = a.copy() b是a拷贝,a和b互不影响 In [1]: import numpy as np In [2]: a = np.arange(12).reshape(3,4) In [3]: a Out[3]: array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) In [4]: b = a In [5]: b is a Out[5]: True In [6]: b = a[:] In [7]: b is a Out[7]: False In [8]: a Out[8]: array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) In [9]: b[0,0] =1 In [10]: b Out[10]: array([[ 1, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) In [11]: a Out[11]: array([[ 1, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) In [12]: b = a.copy() In [13]: b[0,0] = 2 In [14]: b Out[14]: array([[ 2, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) In [15]: a Out[15]: array([[ 1, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]])
    Processed: 0.014, SQL: 9