复制与视图

收藏99

阅读2499

更新时间2025-08-12

副本和视图之间的区别

数组的副本和视图之间的主要区别在于,副本是一个新数组,而视图只是原始数组的视图。

副本拥有数据,对副本所做的任何更改都不会影响原始数组,对原始数组所做的任何更改也不会影响副本。

视图不拥有数据,对视图所做的任何更改都会影响原始数组,对原始数组所做的任何更改都会影响视图。

副本

实例

制作副本,更改原始数组,然后显示两个数组:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
x = arr.copy()
arr[0] = 42

print(arr)
print(x)

提示:副本不应受到对原始数组所做的更改的影响。

视图

实例

创建视图,更改原始数组并显示两个数组:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
arr[0] = 42

print(arr)
print(x)

视图应该受到对原始数组所做的更改的影响。

在视图中进行更改:

实例

创建视图、更改视图并显示两个数组:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])
x = arr.view()
x[0] = 31

print(arr)
print(x)

提示:原始数组应该受到对视图所做的更改的影响。

检查数组是否拥有其数据

如上所述,副本拥有数据,而视图不拥有数据,但是我们如何检查这一点呢?

每个 NumPy 数组都有一个属性 base,如果数组拥有数据,则返回 None

否则,base 属性将引用原始对象。

实例

打印 base 属性的值以检查数组是否拥有其数据:

import numpy as np

arr = np.array([1, 2, 3, 4, 5])

x = arr.copy()
y = arr.view()

print(x.base)
print(y.base)

提示:副本返回 None。视图返回原始数组。

科技资讯

更多

精选课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时

61.7万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时

39.3万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时

70.9万人学习

独孤九贱(1)_HTML5视频教程
独孤九贱(1)_HTML5视频教程

共25课时

61.6万人学习

独孤九贱(2)_CSS视频教程
独孤九贱(2)_CSS视频教程

共22课时

23万人学习

独孤九贱(3)_JavaScript视频教程
独孤九贱(3)_JavaScript视频教程

共28课时

33.9万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时

125万人学习

关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号