NumPy快速入门--复制/视图/深拷贝

文章目录

    • 1. 完全不复制
    • 2. 视图或浅复制
    • 3. 深拷贝

当计算和操作数组时,它们的数据有时被复制到新的数组中,有时不复制。对于初学者来说,这经常是一个混乱的来源。有三种情况:

1. 完全不复制

  • 简单赋值不会创建新的副本。
>>> a = np.arange(12)
>>> b = a
>>> b is a
True
>>> b.shape
(12,)
>>> b.shape = 3,4
>>> a.shape
(3, 4)
>>> id(a)		#a、b的 id 号一样,没有创建新的数据
2432625948272
>>> id(b)
2432625948272
  • Python将可变对象作为引用传递,所以函数调用不会复制。
>>> def f(x):print(id(x))>>> id(a)
2432625948272
>>> f(a)	# 传入函数的对象a的id打印出来和之前一样,没有新对象产生
2432625948272

2. 视图或浅复制

  • 不同的数组对象可以共享相同的数据view 方法创建一个新的数组对象,它查看相同的数据。
>>> c = a.view()
>>> c is a
False
>>> c.base is a
True
>>> c.flags.owndata	# 返回 False,c 并不保管数据
False
>>> a.flags.owndata	# 返回 True,数据由 a 保管
True
>>> c.shape
(3, 4)
>>> a.shape
(3, 4)
>>> c.shape = 2,6	# 形状不会同步
>>> c[0,4] = 1234	# 共享数据,a的也会变,数据同步
>>> c
array([[   0,    1,    2,    3, 1234,    5],[   6,    7,    8,    9,   10,   11]])
>>> a
array([[   0,    1,    2,    3],[1234,    5,    6,    7],	 # 1234也在里面[   8,    9,   10,   11]])
  • 对数组切片返回一个视图view
>>> s = a[:,1:3]	# s是a的切片,是a的一个view
>>> s
array([[ 1,  2],[ 5,  6],[ 9, 10]])
>>> s[:] = 999		# s 全部改数据
>>> s
array([[999, 999],[999, 999],[999, 999]])
>>> a				# a中的s切片部分数据都被改了
array([[   0,  999,  999,    3],[1234,  999,  999,    7],[   8,  999,  999,   11]])

3. 深拷贝

参考链接

  • copy 方法生成数组及其数据的完整拷贝。
>>> a = np.arange(12).reshape(3,4)
>>> a
array([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]])>>> d = a.copy()		# 新的对象
>>> d is a
False
>>> d.base is a			# 与a没有任何联系
False
>>> d[0,0] = 999
>>> d
array([[999,   1,   2,   3],[  4,   5,   6,   7],[  8,   9,  10,  11]])
>>> a
array([[ 0,  1,  2,  3],[ 4,  5,  6,  7],[ 8,  9, 10, 11]])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479651.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pkuseg:一个多领域中文分词工具包

pkuseg简单易用,支持细分领域分词,有效提升了分词准确度。 目录 主要亮点编译和安装各类分词工具包的性能对比使用方式相关论文作者常见问题及解答主要亮点 pkuseg具有如下几个特点: 多领域分词。不同于以往的通用中文分词工具,此…

积木Sketch Plugin:设计同学的贴心搭档

| A consistent experience is a better experience.——Mark Eberman | 一致的体验是更好的体验。——Mark Eberman 《摘自设计师的16句名言》 背景 1.UI一致性项目 积木(Tangram)Sketch插件源于美团外卖UI的一致性项目,该项目自2019年5月份…

简单讲述一下Intent的传值过程

昨晚带女友Android入门,她本是照着一本书敲得,可以运行,后来她自己凭思维自己写了一个,然后出现了值没有传过来的问题,然后简单的了解了一下Intent是如何传递数据的。 我们的例子是这样的: 由A Activity通…

何恺明团队:stop gradient是孪生网络对比学习成功的关键

文 | Happy源 | 极市平台本文是FAIR的陈鑫磊&何恺明大神在无监督学习领域又一力作,提出了一种非常简单的表达学习机制用于避免表达学习中的“崩溃”问题,从理论与实验角度证实了所提方法的有效性;与此同时,还侧面证实了对比学…

美团无人配送CVPR2020论文CenterMask解读

计算机视觉技术是实现自动驾驶的重要部分,美团无人配送团队长期在该领域进行着积极的探索。不久前,高精地图组提出的CenterMask图像实例分割算法被CVPR2020收录,本文将对该方法进行介绍。 CVPR的全称是IEEE Conference on Computer Vision an…

自然语言处理系列篇——关键词智能提取

自然语言处理系列篇——关键词智能提取:https://zhuanlan.zhihu.com/p/25889937

如何使用ListView实现一个带有网络请求,解析,分页,缓存的公共的List页面来大大的提高工作效率

在平常的开发中经常会有很多列表页面,每做一个列表页就需要创建这个布局文件那个Adapter适配器文件等等一大堆与之相关的附属的不必要的冗余文件。如果版本更新迭代比较频繁,如此以往,就会使项目工程变得无比庞大臃肿。 如果看过这篇文章或者…

从信息检索顶会CIKM'20看搜索、推荐与计算广告新进展

文 | 谷育龙Eric源 | 搜索推荐广告排序艺术我是谷育龙Eric,研究方向有深度学习、搜索推荐,喜欢为大家分享深度学习在搜索推荐广告排序应用的文章。CIKM作为信息检索、数据挖掘等领域的国际一流会议,每年都有很多搜索推荐广告领域的精彩论文。…

复杂风控场景下,如何打造一款高效的规则引擎

| 在互联网时代,安全已经成为企业的命脉。美团信息安全团队需要采用各种措施和手段来保障业务安全,从而确保美团平台上的用户和商户利益不会受到侵害。 本文主要介绍了美团在打造自有规则引擎Zeus(中文名“宙斯”)的过程中&#x…

Android消息队列图片记录

很早之前为了给学生讲明白整个消息队列是怎么个情况,于是大概阅读了一下消息队列的整个工作过程,鉴于网上大部分都是文字说明,没有一个图例,于是做出了下面这张图,权当作以后复习之用,也供大家学习参考&…

Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!

原文连接:https://blog.csdn.net/u011535541/article/details/83379151 转载自 Git使用教程 预警:因为详细,所以行文有些长,新手边看边操作效果出乎你的预料)一:Git是什么? Git是目前世界上最先…

主动学习入门篇:什么是主动学习?有哪些具体应用

文 | 淘系技术部 初类来源 | 知乎在大数据和算力的助力下,深度学习掀起了一波浪潮,在许多领域取得了显著的成绩。以监督学习为主的深度学习方法,往往期望能够拥有大量的标注样本进行训练,模型能够学到更多有价值的知识&#xff08…

关键词提取相关优化

1 2019最全关键词挖掘方法: https://zhuanlan.zhihu.com/p/79949199 百度关键词光年关键词工具站长之家关键词) 2 【 文智背后的奥秘 】系列篇:关键词智能提取: https://cloud.tencent.com/developer/article/1004378 3 &#x…

LeetCode 59. 螺旋矩阵 II LeetCode 54. 螺旋矩阵

文章目录1. 题目信息2. LeetCode 59 解题3. LeetCode 54. 螺旋矩阵4.《剑指Offer》面试题291. 题目信息 给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例:输入: 3 输出: [[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7…

如何查看Activity任务栈以及dumpsys_activity命令的简要使用及介绍

今天看到淘宝客户端的某个页面效果,效果是在两个Activity中做动画,为了知道究竟是不是在同一个Activity中做的效果,就必须采取一种手段来知道是不是同一个Activity.描述一下这个动画效果:列表页面点击图片,图片会滑动到…

论文浅尝 | 基于微量资源的神经网络跨语言命名实体识别

论文笔记整理:谭亦鸣,东南大学博士生,研究方向为跨语言知识图谱问答。来源:EMNLP 2018链接:https://www.aclweb.org/anthology/D18-1034问题背景与动机本文关注小语种/资源匮乏语言的跨语言命名实体识别问题&#xff0…

美团命名服务的挑战与演进

| 本文根据美团基础架构部技术专家舒超在2019 ArchSummit(全球架构师峰会)上的演讲内容整理而成。 命名服务主要解决微服务拆分后带来的服务发现、路由隔离等需求,是服务治理的基石。美团命名服务(以下简称MNS)作为服务…

ajax发送数据时的contentType

contentType: 指明发送的data数据(这里是aa)的类型 参数值:application/x-www-form-urlencoded(默认) 特点: 以key/value为一组使用&连接,如:usernamelly&password123&…

NeurIPS 2020 | 自步对比学习:充分挖掘无监督学习样本

文 | 葛艺潇源 | PaperWeekly本文介绍一篇我们发表于 NeurIPS-2020 的论文《Self-paced Contrastive Learning with Hybrid Memory for Domain Adaptive Object Re-ID》,该工作提出自步对比学习框架及混合记忆模型,旨在解决无监督及领域自适应表征学习中…

Postman安装与使用

原文链接:https://blog.csdn.net/fxbin123/article/details/80428216 一、Postman背景介绍 用户在开发或者调试网络程序或者是网页B/S模式的程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的Firebug等网页调试工具。…