Python机器学习(四十八)NumPy副本和视图
数组副本是内容与原数组相同,存储在另一个内存位置的数组。
数组视图是由原数组生成的另一个数组,但是与原数组共享数组元素内存,是对同一个内存位置所存储数组元素的不同呈现。
数组引用是原数组的别名,与原数组是同一个数组。数组赋值
NumPy中,把一个数组赋值给另一个数组,不会拷贝数组,赋值只是对原始数组的引用。对被赋值数组做的更改也会反映在原始数组中。
id()函数返回数组的通用标识符,类似于C语言中的指针。
示例import numpy as np a = np.array([[1,2,3,4],[9,0,2,3],[1,2,3,19]]) print("原始数组:") print(a) print(" ") print("数组a的ID:", id(a)) b = a print(" 赋值操作 b = a:") print(" b的ID:",id(b)) b.shape = 4,3; print(" b上的修改也反映到a上:") print(a)
输出原始数组: [[ 1 2 3 4] [ 9 0 2 3] [ 1 2 3 19]] 数组a的ID: 140377691416656 赋值操作 b = a: b的ID: 140377691416656 b上的修改也反映到a上: [[ 1 2 3] [ 4 9 0] [ 2 3 1] [ 2 3 19]]ndarray.view()
view()方法返回新的数组对象,但数组元素数据与原始数组共享,因此是浅拷贝。与前面的情况不同,新数组的维数更改不会影响原数组的维数。
示例import numpy as np a = np.array([[1,2,3,4],[9,0,2,3],[1,2,3,19]]) print("原始数组: ",a) print(" a的ID:",id(a)) b = a.view() print(" b的ID:",id(b)) print(" 打印b的view") print(b) b.shape = 4,3; print(" b的维数更改不影响a") print(" 原始数组 ",a) print(" view ",b) b[0, 0] = 100 print(" b的元素更改会影响a") print(" 原始数组 ",a) print(" view ",b)
输出原始数组: [[ 1 2 3 4] [ 9 0 2 3] [ 1 2 3 19]] a的ID: 140249104167360 b的ID: 140249103376752 打印b的view [[ 1 2 3 4] [ 9 0 2 3] [ 1 2 3 19]] b的维数更改不影响a 原始数组 [[ 1 2 3 4] [ 9 0 2 3] [ 1 2 3 19]] view [[ 1 2 3] [ 4 9 0] [ 2 3 1] [ 2 3 19]] b的元素更改会影响a 原始数组 [[100 2 3 4] [ 9 0 2 3] [ 1 2 3 19]] view [[100 2 3] [ 4 9 0] [ 2 3 1] [ 2 3 19]]ndarray.copy()
copy()返回原始数组的深层副本,该副本不与原始数组共享任何内存,是深拷贝。对数组副本所做的修改不会影响原始数组。
示例import numpy as np a = np.array([[1,2,3,4],[9,0,2,3],[1,2,3,19]]) print("原始数组: ", a) print(" a的ID:", id(a)) b = a.copy() print(" b的ID:", id(b)) print(" 打印b") print(b) b.shape = 4,3; print(" b的维数更改不影响a") print(" 原始数组a ", a) print(" 数组副本b ", b) b[0, 0] = 100 print(" b的元素更改不影响a") print(" 原始数组a ", a) print(" 数组副本b ", b)
输出原始数组: [[ 1 2 3 4] [ 9 0 2 3] [ 1 2 3 19]] a的ID: 140312719819200 b的ID: 140312509357872 打印b [[ 1 2 3 4] [ 9 0 2 3] [ 1 2 3 19]] b的维数更改不影响a 原始数组a [[ 1 2 3 4] [ 9 0 2 3] [ 1 2 3 19]] 数组副本b [[ 1 2 3] [ 4 9 0] [ 2 3 1] [ 2 3 19]] b的元素更改不影响a 原始数组a [[ 1 2 3 4] [ 9 0 2 3] [ 1 2 3 19]] 数组副本b [[100 2 3] [ 4 9 0] [ 2 3 1] [ 2 3 19]]
800元以下入耳式耳机有哪些推荐?八百元以下的入耳会耳机我推荐下面几款,是我觉得比较好的几款,可以参考参考近两年蓝牙耳机可是掀起一股热潮,随之蓝牙耳机的选择成为了很多人关心的问题。如何选择一款满足质量要求,功能完善
新出炉的宜盾普星鲜厨微蒸烤一体机评测,和微蒸烤食谱一起热乎乎哈喽大家好,我是聚灵阵主。今天主要来进行一下宜盾普最新推出的台式微蒸烤一体机的评测,顺便给大家分享几个简单美味的微蒸烤食谱。评测之前先科普微蒸烤一体机能做什么微蒸烤一体机是集微波炉
在闲鱼看见一对值得推荐的入门级落地箱今天无意逛闲鱼时发现的,豪杰AR620落地箱,这对箱子我以前玩过,400500内完全值得想尝试的朋友入手。豪杰音响在90年代也是风光一时,可是随着PC的崛起,整个音响市场就开始江河
Apple可能在今年推出有声读物服务最终实现AppleOne捆绑服务日前,有消息称苹果今年晚些时候将推出有声读物服务,以扩大其AppleOne服务组合,与Netflix亚马逊等公司竞争。据美国科技博客MacRumors介绍,苹果已经通过其Apple
假冒滴滴司机性侵直播两当事人刑满释放后公开道歉1月5日,假冒滴滴司机性侵直播案当事人车某涛和郜某琦在其个人微博发布手写信,向滴滴司机滴滴公司以及网友们公开道歉,寻求公众原谅。据了解,两名当事人因传播淫秽物品被判1年零2个月,目
关于分布式和微服务的一些总结写在前面一直对微服务和分布式这两个概念模棱两可,不是太清晰,而且接触的项目也没这么大体量,没有用到过,蹭现在有时间总结一下,总结内容部分来源于从Paxos到Zookper分布式一致
实锤了?官方定调联想4大罪,这次真翻车了在去年下半年,著名的up主司马南对联想发出了质疑,这场讨论一直延续到了今年,而联想并未对其做出回应。有很多人怀疑司马南为了获取流量碰瓷联想集团,然而近期的一系列事件表明联想集团或许
中信证券比亚迪2022年有望迎车型爆发南方财经1月5日电,中信证券指出,2021年比亚迪新能源汽车累计销量60。4万辆,同比218,技术红利开始兑现。随着公司车型矩阵持续完善新能源车竞争力持续验证,2022年公司智能化
这起硅谷诈骗案主角最终获罪来源中工网工人日报原标题这起硅谷诈骗案主角最终获罪董沛1月3日,曾经靠骗局成为硅谷最靓丽独角兽的Theranos公司CEO伊丽莎白霍尔姆斯最终被判有罪。她曾开创了美国创新企业的神话
MySQL优化系列14优化MySQL内存备注测试数据库版本为MySQL8。0TableofContents一。MySQL如何使用内存二。监控MySQL内存使用三。开始largepage支持参考一。MySQL如何使用内存M
不懂英语能做跨境电商吗?容易吗?不容易。但万事开头难,英语的学习也可以从实践中获得。所以不懂英语做跨境电商就要学英语。而要学英语,尤其是跨境电商英语,我认为最快的方法就是让跨境电商老手带你,了解哪方面的英语表达合