numpy副本与视图

76 阅读1分钟

1.numpy在做数组运算或数组操作时,返回结果不是数组的 副本 就是 视图。

2.所有赋值运算不会为数组和数组中的任何元素创建副本(即返回的是视图---一个变全都变)。

  • 例子:

    x = np.array([ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ])

    y = x

    y[ 0 ] = - 1

    print (x)

    # [-1 2 3 4 5 6 7 8]

    print (y)

    # [-1 2 3 4 5 6 7 8]

3. numpy.ndarray.copy()

  • 作用:创建一个副本---赋值两者不同时改变。

  • 特点:对副本数据进行修改,不会影响到原始数据,它们物理内存不在同一位置。

  • 例子:

    x = np.array([ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ])

    y = x.copy()

    y[ 0 ] = - 1

    print (x)

    # [1 2 3 4 5 6 7 8]

    print (y)

    # [-1 2 3 4 5 6 7 8]