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