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]]
MGONE背后的大佬有多厉害?混沌学园专门为此开了一个会新消费时代下,面对全球市场的发展趋势,汽车产业如何变革与创新近日,MG携手创新学习机构混沌学园,共同举办了一场以重新定义变革中的新消费时代为主题的分享会,此次分享会,是专业人士对模
荣耀50SE值不值得买?看完这篇文章就懂了暑假近在眼前,学生群体成为了商家们掘金的潜在群体,而智能手机领域的促销大战更是早已打响。放眼市场,手机厂商竞相推出新品,各大卖场的促销活动此起彼伏,新一轮换机潮呼之欲出。在众多新机
雷军泪洒现场!互联网大佬们的创业往事雷总哭了,不过不是这次。昨晚,小米创始人雷军举办了2021个人年度演讲,暨小米秋季新品发布会。除了带来几款科技感十足的新货,雷军在现场还回顾了小米成立十一年来所取得的种种成就第三次
陆半导体业大规模扩产,催生10年的成长期芯片短缺危机未解反而有继续恶化的趋势,扩产成为大陆半导体行业主流,根据中国国际招标网显示,8月以来,中芯绍兴上海积塔华虹半导体长江存储等半导体企业已新增多项设备招标,使设备厂获益。
理想汽车曲线救企,少装2颗雷达可以更快提车全球芯片危机爆发导致多个产业发展受阻过去的一年里不少汽车企业不得不停产停工停产带来的是销量下降车企正常的做法整合多方供应商让零部件能正常供应但理想汽车想到了新办法选择3雷达版的可以
全球最快充电桩15分钟充满,电车长途出行不用怕国庆假日期间新能源车主在高速服务区排队4h充电的新闻上了热搜新能源车充电难问题再次引发关注新能源车充电难的原因是什么?是充电桩安装数量不足?还是电桩故障率较高?能否有改进的办法呢据
联电计划再砸百亿在新加坡建晶圆厂近日,市场传出,晶圆代工厂联电计划将在新加坡兴建第二座12寸新厂,月产能至少2至3万片,投资金额超过1000亿元新台币(约人民币229亿元),业界推估,新厂可能采40奈米以下制程生
格力遭控诉,被美国罚款9100万美元百能云芯21世纪经济报道指出,在美东时间29日,美国司法部官网披露,司法部与中企格力达成延迟起诉协议,格力同意接受9,100万美元的罚款,赔偿因有缺陷除湿机而引发火灾的受灾者。报道称,珠海
78官测万代CONVERGEKAMENRIDER普通版第二十二弹文章转自78DM首先在这里感谢万代食玩部提供评测样品商品名CONVERGEKAMENRIDER普通版第二十二弹发售时间2021年8月商品价格500日元我们本期测评的是CONVERG
模玩周边橡子共和国多拉船长纪念夹克外套1986年上映的经典日本动画电影天空之城在今年迎来了上映35周年,这部首作吉卜力工作室的电影作品,可说对许多吉卜力迷心中有着不凡地位。今日宣布推出上映35周年的纪念夹克外套,以飞行
芯片荒持续蔓延,国产芯片能否觉醒?从去年下半年开始全球芯片荒席卷整个汽车产业各国汽车厂商纷纷停工停产据美国伯恩斯坦研究公司预计2021年全球范围内的汽车芯片短缺将造成多达450万辆汽车产量损失相当于全球汽车年产量的