ホームページ >バックエンド開発 >Python チュートリアル >2D Numpy 配列をより小さな 2D 配列にスライスするにはどうすればよいですか?
Numpy は、Python で多次元配列を操作するための多機能ライブラリです。特定のセクションを抽出するためのスライスなど、配列操作のためのさまざまな方法が提供されます。この記事では、提供された例をエミュレートして、2D 配列をより小さな 2D 配列にスライスするソリューションを検討します。
[[1,2,3,4], -> [[1,2] [3,4] [5,6,7,8]] [5,6] [7,8]]
提案されたソリューションでは、reshape 関数と swapaxes 関数を活用して、希望通りのスライスを実現します。 reshape 関数は配列の形状を変更し、swapaxes 関数は指定された軸を交換します。次の Python コードでは、ブロック形状の関数がこのアプローチをカプセル化しています。
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]]]
このソリューションは、次を使用して 2D numpy 配列をより小さな 2D 配列にスライスする方法を示します。 reshape 関数と swapaxes 関数。画像やその他の行列を処理および操作するための柔軟で効率的なアプローチを提供します。
以上が2D Numpy 配列をより小さな 2D 配列にスライスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。