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)
sliced 将保存所需的 2D 块:
[[[ 0 1 2] [ 6 7 8]] [[ 3 4 5] [ 9 10 11]] [[12 13 14] [18 19 20]] [[15 16 17] [21 22 23]]]
此解决方案演示了如何使用 reshape 和 swapaxes 函数将 2D numpy 数组切片为更小的 2D 数组。它提供了一种灵活高效的方法来处理和操作图像或其他矩阵。
以上是如何将 2D Numpy 数组分割成更小的 2D 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!