Python numpy数据指针地址更改而不进行修改
编辑 经过一些更多的摆弄,我到目前为止已经隔离了以下状态: >直接输入变量时,1D数组给出两个不同的地址,使用print()时只有一个地址 像这样:
原始邮政 我的印象只是在python控制台中输入一个变量,回显一个简单描述它的值(和类型)的字符串.它以与print()不同的方式格式化,但我假设它们返回的值都是相同的. 当我尝试输出numpy对象的数据指针对象的地址时,只需输入变量每隔一次给我不同的值,而print()给出相同的值. 这表明两个操作的不同之处不仅在于输出的格式,还在于它们从何处获取信息.但这些额外的差异究竟是由什么组成的呢?
最佳答案
a.data返回的内存视图似乎在两个(或更多)视图之间交替.如果存储a.data的给定实例,则会得到一致的输出:
注意,在上面的例子中有3个地址旋转;我很确定这都是一个实现细节.我猜想会涉及一些缓存,这意味着每次访问a.data时都不会生成新视图. 您还可以确定您正在查看单独的视图对象:
因此,大多数混淆可能来自于a.data的属性符号表明它是我们正在谈论的固定对象这一事实,而事实并非如此. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |