numpy.lib.stride_tricks.as_strided#

lib.stride_tricks.as_strided(x, shape=None, strides=None, subok=False, writeable=True)[源码]#

使用给定的形状和步幅在数组中创建一个视图。

警告

此函数必须极其谨慎地使用,请参阅注意事项。

参数:
xndarray

要创建新视图的数组。

shape整数序列,可选

新数组的形状。默认为 x.shape

strides整数序列,可选

新数组的步幅。默认为 x.strides

subok布尔值,可选

如果为 True,则保留子类。

writeable布尔值,可选

如果设置为 False,返回的数组将始终是只读的。否则,如果原始数组是可写的,则返回的数组也将是可写的。建议尽可能将其设置为 False(请参阅注意事项)。

返回:
viewndarray

另请参阅

broadcast_to

将数组广播到给定形状。

reshape

重塑数组。

lib.stride_tricks.sliding_window_view

用于创建滑动窗口视图的用户友好且安全的函数。

注意事项

as_strided 根据精确的步幅和形状在数组中创建视图。这意味着它会操作 ndarray 的内部数据结构,如果操作不当,数组元素可能指向无效内存,从而可能破坏结果或导致程序崩溃。建议在计算新步幅时始终使用原始的 x.strides,以避免依赖于连续的内存布局。

此外,使用此函数创建的数组通常包含自重叠内存,这意味着两个元素是相同的。在此类数组上进行矢量化写入操作通常是不可预测的。即使对于小型、大型或转置数组,它们也可能产生不同的结果。

由于对这些数组的写入操作必须经过测试并极其谨慎地进行,您可能希望使用 writeable=False 来避免意外的写入操作。

由于这些原因,建议尽可能避免使用 as_strided