我是个新手,我正在尝试在Numpy或常规Python数组中的特定索引处获取元素的地址。我正在听Coursera上的一节课,讲师会得到地址,但我很困惑,我是否能用Python做同样的事情,因为这门课是用另一种语言教的。下面是我试图用代码完成的一个数学示例:http://www.guideforschool.com/625348-memory-address-calculation-in-an-array/
这是我想做的。假设我有一个包含索引的数组:
|_|_|_|_|_|_|_|
1 2 3 4 5 6 7
我想计算索引4的地址,因此计算如下:
^{pr2}$我需要第一项,数组地址或基地址。我试过了:
import numpy as np
a = np.ndarray([1,2,3,4,5,6,7])
print(a.__array_interface__['data'])
但我每次运行它都会得到一个不同的值,而不是针对某个特定的索引。在
我肯定我永远不用做这些计算,但我想深入了解我所学到的一切。或者我会用它吗?什么时候我会用这个例子?在
数组及其属性:
切片的数据缓冲区位置:
^{pr2}$切片共享数据缓冲区,但偏移量为4个元素(4*8)。在
使用此信息,我可以使用
ndarray
构造函数获取切片(通常不需要):arr.data
是一个memoryview
对象,它以某种方式引用此数组的数据缓冲区。arr.data
的id/地址与我上面使用的数据指针不同。在注意,
arr[4]
的数据位置完全不同。它是“未装箱”的,不是切片:相关问题 更多 >
编程相关推荐