numpy.lib.stride_tricks.as_strided#
- lib.stride_tricks.as_strided(x, shape=None, strides=None, subok=False, writeable=True)[source]#
创建具有给定形状和步长的数组的视图。
警告
此函数必须谨慎使用,请参阅注释。
- 参数:
- xndarray
要创建新数组的数组。
- shape整数序列,可选
新数组的形状。默认为
x.shape
。- strides整数序列,可选
新数组的步长。默认为
x.strides
。- subok布尔值,可选
版本 1.10 中的新功能。
如果为 True,则保留子类。
- writeable布尔值,可选
版本 1.12 中的新功能。
如果设置为 False,则返回的数组将始终为只读。否则,如果原始数组可写,则它将可写。建议在可能的情况下将其设置为 False(请参阅注释)。
- 返回值:
- viewndarray
另请参阅
broadcast_to
将数组广播到给定形状。
reshape
重塑数组。
lib.stride_tricks.sliding_window_view
用于创建滑动窗口视图的友好且安全的函数。
注释
as_strided
根据精确的步长和形状创建数组的视图。这意味着它操作 ndarray 的内部数据结构,如果操作不正确,数组元素可能指向无效的内存,并可能破坏结果或使程序崩溃。建议在计算新步长时始终使用原始的x.strides
,以避免依赖于连续的内存布局。此外,使用此函数创建的数组通常包含自重叠内存,因此两个元素是相同的。对这些数组进行矢量化写入操作通常是不可预测的。对于小型、大型或转置数组,它们甚至可能给出不同的结果。
由于必须测试对这些数组的写入操作,并且必须非常小心地进行,因此您可能希望使用
writeable=False
来避免意外的写入操作。由于这些原因,建议尽可能避免使用
as_strided
。