numpy中的copy和view

本文详细解析了Python中NumPy数组的View与Copy机制。View类似于传引用,与原始数据共享同一份内存,修改一个会影响另一个;而Copy则创建了一个全新的副本,对副本的修改不会影响原数据。通过实例演示了两种机制下数据操作的行为差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

出处

python中没有传值和传引用的概念,但copy和view有类似的作用。

  • View
    view相当于传引用,view和原始数据共享一份数据,修改一个会影响另一个。
    slice,array.view(dtype)可以产生view,但array.astype(dtype)产生的不是view

     x = np.arange(5)
     print('x = :\n', x)  
     view = x[1:3]
     view[1] = 6
     print('x = :\n', x)  # Prints [0 1 -1 3 4]
    

    输出

    [0,1,2,3,4]
    [0,1,6,3,4]
    
  • Copy
    和slice很像的fancy index (用array作索引,包括bool数组)返回的是copy

     x = np.arange(5)
     print('x = :\n', x)  
     copy = x[[1,2]]
     copy[1] = 6
     print('x = :\n', x)  # Prints [0 1 -1 3 4]
    

    输出

    [0,1,2,3,4]
    [0,1,2,3,4]
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值