NumPy切片或直接赋值生成数组视图
1 先创建一个ndarry数组a
import numpy as np
a = np.arange(start=1, stop=10, step=2)
print(a)
[1 3 5 7 9]
2 将a切片赋值于一个数组b
b = a[0:1]
print(b)
[1]
3 将a直接赋值于c
c = a
4 更改数组a的值
a[0] = 0
print(a)
[0 3 5 7 9]
5 查看b和c的值,可以看到b和c的值都随a而改变
print(b)
[0]
print(c)
[0 3 5 7 9]
结论:ndarry进行切片或直接赋值生成的是视图,会随原数据的改变而改变。
补充1:使用copy()
方法可以避免产生视图,如b=a.copy()
。
补充2:经验证,直接索引不会生产视图,如b=a[0]
。
分类:
Python / NumPY
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步