numpy.lib.stride_tricks.as_strided #

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

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

警告

使用此功能必须非常小心,请参阅注释。

参数
x ndarray

创建一个新的数组。

int 的形状序列,可选

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

int 的strides序列,可选

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

subok布尔,可选

1.10 版本中的新功能。

如果为 True,则保留子类。

可写布尔值,可选

1.12 版本中的新增内容。

如果设置为 False,则返回的数组将始终是只读的。否则,如果原始数组是可写的,那么它将是可写的。如果可能的话,建议将其设置为 False(请参阅注释)。

返回
查看ndarray

也可以看看

broadcast_to

将数组广播到给定的形状。

reshape

重塑数组。

lib.stride_tricks.sliding_window_view

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

笔记

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

此外,使用此函数创建的数组通常包含自重叠内存,因此两个元素是相同的。此类数组上的矢量化写入操作通常是不可预测的。对于小型、大型或转置数组,它们甚至可能给出不同的结果。

由于写入这些数组必须经过测试并非常小心地完成,因此您可能需要使用writeable=False以避免意外的写入操作。

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