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
尽可能避免。