菜单
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

NumPy 数组的复制与视图


复制与视图的区别

复制与视图的主要区别在于,复制是一个全新的数组,而视图只是原始数组的一个视图。

复制拥有数据,对复制的任何修改都不会影响原始数组,对原始数组的任何修改也不会影响复制。

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


复制 (COPY)

示例

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

import numpy as np

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

print(arr)
print(x)
自己动手试一试 »

副本不应该受到原始数组更改的影响。


视图 (VIEW)

示例

制作一个视图,修改原始数组,然后显示两个数组

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
视图返回原始数组。



×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持