如果我有一个numpy ndarray,请说A
,其数据缓冲区是C连续的。现在,我想以已知的偏移,形状和步幅查看此矩阵的视图,该怎么办?
例如,如果我有:
import numpy
A = numpy.zeros((100, 100))
假设我想得到一个矩阵
B
,它是A
的视图,相对于A
的偏移量为880个字节,形状为(10,20),跨度为(8,800),我可以请执行下列操作:B = A[1:21, 10:20].T
在一般情况下,是否有一种获取这种视图矩阵的方法?我猜有三种可能的方法,其中任何一种对我都有好处:
提出与上述类似的一系列转换以构造视图矩阵
B
?的通用过程。构造一个具有手动指定的起始地址,偏移量,形状和步幅的ndarray?
我在C ++中具有上述四件事,因此我也可以调用Python C API来构造这样的ndarray。
顺便说一句,我还想知道
B
的哪个属性记录其相对于A
起始地址的偏移量? 最佳答案
如果要完全控制所有内容,则可以直接使用np.ndarray
构造函数,并执行以下操作:
B = np.ndarray(shape=(10, 20), dtype=A.dtype, buffer=A, offset=880,
strides=(8, 800))
关于python - 获取满足特定形状和步幅约束的ndarray的 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28446805/