Loading

numpy的复制

  1. b=a
    b和a是对同一个对象的引用,互相影响
  2. b = a[:]
    b和a不是同一对象,b是a的切片,但是b和a的数据会相互影响
  3. 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]])
posted @ 2021-03-28 17:10  克豪  阅读(86)  评论(0)    收藏  举报