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]

posted @   来个煎饼  阅读(140)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示