NumPy副本和视图
其实从内存角度来说,副本就是对原数组进行深拷贝,新产生的副本与原数组具有不同的存储位置。而视图可理解为对数组的引用,它和原数组有着相同的内存位置。
赋值操作
赋值操作是数组引用的一种方法。比如,将 a 数组赋值给变量 b,被赋值后的变量 b 与 a 组具有相同的内存 id。因此,无论操作 a、b 中哪个数组,另一个数组也会受到影响。例如下:
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
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:139663602288640
b数组的ID:139663602288640
b数组形状的更改也会反映给a数组上:
[[ 1 2 3]
[4 9 0]
[2 3 1]
[2 3 19]]
ndarray.view()
ndarray.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))
#打印b数组
print(b)
#改变b数组形状
b.shape = 4,3
print("原数组a",a)
print("新数组b",b)
输出结果:
原数组:
[[ 1 2 3 4]
[ 9 0 2 3]
[ 1 2 3 19]]
a数组id: 140280414447456
b数组id: 140280287000656
打印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]]
切片创建视图
使用切片可以创建视图数组,若要修改视图的就会影响到原数组,示例如下:
import numpy as np
arr = np.arange(10)
print ('数组arr:')
print (arr)
#创建切片修改原数组arr
a=arr[3:]
b=arr[3:]
a[1]=123
b[2]=234
print(arr)
输出结果:
arr数组:
[ 0 1 2 3 4 5 6 7 8 9]
切片修改arr原数组:
[ 0 1 2 3 123 234 6 7 8 9]
ndarray.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("打印经过copy方法的b数组:")
print(b)
b.shape=4,3
print("原数组",a)
print("经过copy方法的b数组",b)
原始数组:
[[ 1 2 3 4]
[ 9 0 2 3]
[ 1 2 3 19]]
a数组ID: 139895697586176
b数组ID: 139895570139296
打印经过copy方法的b数组
[[ 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]]
经过Copy方法的b数组
[[ 1 2 3]
[ 4 9 0]
[ 2 3 1]
[ 2 3 19]]
- 随机文章
- 饿了么红包怎么用(饿了么红包怎么用微信支付)
- 儿童教育文章(儿童教育)
- 广州4a广告公司(广州4a广告公司创意总监年薪)
- 抖音卡(抖音卡顿怎么解决)
- xboxones(xboxone手柄怎么配对主机)
- 陈武简历
- 帆船比赛(帆船比赛视频)
- 海猫鸣泣之时游戏(海猫鸣泣之时游戏在哪玩)
- 韩国媳妇和小雪(韩国媳妇和小雪的父亲工资是多少)
- 儋州市第二中学(儋州市第二中学录取分数线)
- 地球日主题(2020年世界地球日主题)
- 和柳亚子(和柳亚子先生于田)
- 冰客(冰客果汁)
- yy魔兽(yy魔兽世界)
- 国外成人游戏(国外成人游戏注册需要visa信用卡)
- 充值卡代理(充值卡代理加盟)
- 郭妮小说(恶魔的法则郭妮小说)
- 东天目山(东天目山景区)
- 杭同(杭同培训中心怎么样)
- 蝙蝠给人类的一封信(蝙蝠给人类的一封信)
- 大松电饭煲(美的大松电饭煲)
- 服饰加盟(服饰加盟店招商)
- 疯狂填字(疯狂填字5)
- 观音普门品(观音普门品念诵全文)
- 哈利波特官网(哈利波特官网在哪里)
- 骇客神条(骇客神条怎么辨别真假)
- 杜星霖(杜星霖图片)
- 查传倜(查传倜个人生活)
- 广州晓港公园(广州晓港公园正门图片)
- 钢筋等级符号(钢筋等级符号电脑怎么输入)
