问题遇到的现象和发生背景
您的https://blog.csdn.net/guoziqing506/article/details/71078576这篇文章中的 切片访问数组 部分。
问题相关代码,请勿粘贴截图
a = np.arange(5) # >>> [0 1 2 3 4]
print(id(a[2])) # >>> 4366848312
print(id(a[2:3][0])) # >>> 4366848312
运行结果及报错内容
上面是我的运行结果,与您说的 “需要注意的是,这种数组切片返回的是原始数组的一个视图,与原始数组共享相同的内存空间,而并没有建立新的数组。” 不一致。
我的结果显示 a[2] 和 a[2:3][0] 的内存空间并不相同。
我不知道是我没理解您的意思,还是我哪里出问题了,特地前来请教。
我的解答思路和尝试过的方法
我用以下代码测试存储位置问题,结果更加看不懂了。
我想要达到的结果
我想请教:
- 我的的结果 a[2] 和 a[2:3][0] 的内存空间并不相同的原因是什么。
- 关于我试验的f使用for循环查询内存位置,为什么会出现位置循环,而且和我单个依次访问内存时的结果有出入。
感谢您的阅读,求赐教。