zoukankan      html  css  js  c++  java
  • python机器学习库numpy---13、数组拷贝

    python机器学习库numpy---13、数组拷贝

    一、总结

    一句话总结:

    numpy的copy方法是浅拷贝,numpy实现深度拷贝,可以用copy库的deepcopy方法
    2、浅拷贝
    
    a = np.arange(4)
    # b = a.copy()
    b = np.copy(a)
    print(a)
    print(b)
    print(id(a))
    print(id(b))
    
    [0 1 2 3]
    [0 1 2 3]
    1937862920512
    1937867598384
    
    
    3、深拷贝
    
    实现深度拷贝,可以用copy库的deepcopy方法
    
    import copy
    a = np.array([1, 'm', [2, 3, 4]], dtype=object)
    c = copy.deepcopy(a)

    二、数组拷贝

    博客对应课程的视频位置:13、数组拷贝-范仁义-读书编程笔记
    https://www.fanrenyi.com/video/38/356

    1、直接赋值方式

    In [1]:
    import numpy as np
    a = np.arange(4)
    b = a
    print(a)
    print(b)
    
    [0 1 2 3]
    [0 1 2 3]
    
    In [2]:
    a[0] = 199
    b[1:3] = [7,8]
    print(a)
    print(b)
    
    [199   7   8   3]
    [199   7   8   3]
    
    In [3]:
    print(id(a))
    print(id(b))
    print(b is a)
    
    1937866698464
    1937866698464
    True
    

    2、浅拷贝

    In [4]:
    a = np.arange(4)
    # b = a.copy()
    b = np.copy(a)
    print(a)
    print(b)
    print(id(a))
    print(id(b))
    
    [0 1 2 3]
    [0 1 2 3]
    1937862920512
    1937867598384
    
    In [5]:
    a[0] = 199
    b[1:3] = [7,8]
    print(a)
    print(b)
    
    [199   1   2   3]
    [0 7 8 3]
    

    数组里面有对象的时候

    In [6]:
    a = np.array([1, 'm', [2, 3, 4]], dtype=object)
    print(a)
    
    [1 'm' list([2, 3, 4])]
    
    In [7]:
    b = np.copy(a)
    print(a)
    print(b)
    
    [1 'm' list([2, 3, 4])]
    [1 'm' list([2, 3, 4])]
    
    In [8]:
    b[2][0] = 10
    print(a)
    print(b)
    
    [1 'm' list([10, 3, 4])]
    [1 'm' list([10, 3, 4])]
    
    In [9]:
    print(id(a[2]))
    print(id(b[2]))
    
    1937867498696
    1937867498696
    

    3、深拷贝

    实现深度拷贝,可以用copy库的deepcopy方法

    In [10]:
    import copy
    a = np.array([1, 'm', [2, 3, 4]], dtype=object)
    c = copy.deepcopy(a)
    print(a)
    print(c)
    
    [1 'm' list([2, 3, 4])]
    [1 'm' list([2, 3, 4])]
    
    In [11]:
    c[2][0] = 10
    print(a)
    print(c)
    
    [1 'm' list([2, 3, 4])]
    [1 'm' list([10, 3, 4])]
    
    In [12]:
    print(id(a[2]))
    print(id(c[2]))
    
    1937852899272
    1937861691592
    
    In [ ]:
     
     
    我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站: fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
    博主25岁,前端后端算法大数据人工智能都有兴趣。
    大家有啥都可以加博主联系方式(qq404006308,微信fan404006308)互相交流。工作、生活、心境,可以互相启迪。
    聊技术,交朋友,修心境,qq404006308,微信fan404006308
    26岁,真心找女朋友,非诚勿扰,微信fan404006308,qq404006308
    人工智能群:939687837

    作者相关推荐

  • 相关阅读:
    1
    iulg
    实验10
    作业5 指针应用
    作业4 函数应用
    实验9 指针
    实验 8 数组2
    实验7
    实验6 数组1
    实验5
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/13585009.html
Copyright © 2011-2022 走看看