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]
。