NumPy参考 >例行程序 >Indexing routines > numpy.lib.stride_tricks.as_strided
numpy.lib.stride_tricks.
as_strided
(x,shape = None,strides = None,subok = False,writeable = True )[源代码] ¶创建具有给定形状和步幅的数组视图。
警告
使用此功能时必须格外小心,请参阅注释。
数组创建一个新的。
新数组的形状。默认为x.shape
。
新数组的大步前进。默认为x.strides
。
1.10版的新功能。
如果为True,则保留子类。
1.12版中的新功能。
如果设置为False,则返回的数组将始终为只读。否则,如果原始数组是可写的。如果可能,建议将其设置为False(请参阅注释)。
也可以看看
broadcast_to
将数组广播为给定形状。
reshape
重塑数组。
笔记
as_strided
给定确切的步幅和形状,在数组中创建视图。这意味着它会操纵ndarray的内部数据结构,如果操作不正确,则数组元素可能指向无效的内存,并且可能损坏结果或使程序崩溃。建议x.strides
在计算新步幅时始终使用原始图,以避免依赖连续的内存布局。
此外,使用此函数创建的数组通常包含自重叠内存,因此两个元素相同。这种阵列上的向量化写操作通常是不可预测的。对于小型,大型或转置阵列,它们甚至可能给出不同的结果。由于必须非常仔细地测试和完成对这些数组的writeable=False
写入操作,因此您可能希望使用它来避免意外的写入操作。
由于这些原因,建议尽可能避免as_strided
。