Numpy 是一個用於在 Python 中操作多維數組的多功能函式庫。它提供了多種數組操作方法,包括切片以提取特定部分。本文探討了一種將2D 數組切片為更小的2D 數組的解決方案,模擬提供的示例:
[[1,2,3,4], -> [[1,2] [3,4] [5,6,7,8]] [5,6] [7,8]]
建議的解決方案利用重塑和交換軸函數達到想要的切片效果。 reshape 函數修改陣列的形狀,而 swapaxes 函數交換指定的軸。在下面的Python程式碼中,blockshape函數封裝了這個方法:
def blockshaped(arr, nrows, ncols): h, w = arr.shape return (arr.reshape(h//nrows, nrows, -1, ncols) .swapaxes(1,2) .reshape(-1, nrows, ncols))
說明:
為了說明用法,請考慮範例陣列c:
np.random.seed(365) c = np.arange(24).reshape((4, 6))
切片c 成2x3 區塊:
sliced = blockshaped(c, 2, 3)
切片c 成2x3 區塊:
[[[ 0 1 2] [ 6 7 8]] [[ 3 4 5] [ 9 10 11]] [[12 13 14] [18 19 20]] [[15 16 17] [21 22 23]]]切片即可容納所需的2D區塊:結論此解示範如何使用 reshape 和 swapaxes 函數將 2D numpy 陣列切片為更小的 2D 陣列。它提供了一種靈活且高效的方法來處理和操作影像或其他矩陣。
以上是如何將 2D Numpy 陣列分割成更小的 2D 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!