获取 numpy ndarray 偏移量

Yuk*_*oto 2 python numpy python-3.x

问题:如何计算 ndarray 视图的“偏移量”?

实施例1

输入:

a = np.arange(10, dtype=np.uint8)
b = a[1:]
# some procedure to get offset
print(offset)
Run Code Online (Sandbox Code Playgroud)

预期输出

1
Run Code Online (Sandbox Code Playgroud)

因为,uint8是1字节对象。

实施例2

输入:

a = np.arange(10, dtype=np.uint8)
b = np.ndarray((9,), a.dtype, a.data, offset=1)
# some procedure to get offset
print(offset)
Run Code Online (Sandbox Code Playgroud)

预期输出:

1
Run Code Online (Sandbox Code Playgroud)

这(可能)与示例 1 中所示的过程完全相同。

hpa*_*ulj 6

In [485]: a = np.arange(10, dtype=np.uint8)
     ...: b = a[1:]
Run Code Online (Sandbox Code Playgroud)

比较这些:

In [486]: a.__array_interface__['data'][0]
Out[486]: 38965232
In [487]: b.__array_interface__['data'][0]
Out[487]: 38965233
Run Code Online (Sandbox Code Playgroud)