ホームページ  >  記事  >  バックエンド開発  >  4D NumPy 配列を 2D 配列に再形成するにはどうすればよいですか?

4D NumPy 配列を 2D 配列に再形成するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-01 20:12:02599ブラウズ

How to Reshape a 4D NumPy Array into a 2D Array?

NumPy で 4D 配列を 2D 配列に再形成する背後にある直感とアイデア

NumPy で配列を再形成する方法を理解することは、多次元データを扱うときに重要です。 reshape 関数は配列の形状を変更する便利な方法を提供しますが、高次元の配列で関数がどのように動作するかを理解するのは難しい場合があります。

一般的な変換アプローチ

異なる次元レベル (nd) の間で配列を変換するには、次の 2 つの重要な手順が必要です:

  1. 軸の並べ替え: transpose、moveaxis、rollaxis などの関数を使用して軸の順序を並べ替えて、入力配列の平坦化された表現は、目的の出力の表現と一致します。
  2. 形状変更: 配列の形状を変更して、追加の軸を作成するか、既存の軸をマージして最終的な目的の形状にします。

具体的な例

質問で提供された 4D 配列を考えてみましょう:

array([[[[ 0,  0],
         [ 0,  0]],

        [[ 5, 10],
         [15, 20]]],


       [[[ 6, 12],
         [18, 24]],

        [[ 7, 14],
         [21, 28]]]])

これを (4,4) に変形するには、次の手順を適用できます:

  1. 軸の並べ替え: 平面化された表現を整列させるには、軸 (2、0、3、1) を交換する必要があります。
  2. 形状変更: 最後に、並べ替えた配列を目的の (4,4) 形状に変更できます。
array.transpose((2, 0, 3, 1)).reshape(4,4)

結果は次のようになります:

array([[ 0,  5,  0, 10],
       [ 6,  7, 12, 14],
       [ 0, 15,  0, 20],
       [18, 21, 24, 28]])

バックトラッキング手法

このような変換の解決は、バックトラッキング手法を使用して簡素化できます。

  1. 出力配列の最終形状を特定します。
  2. 必要に応じて、出力の nd と一致させるために入力配列を分割することから始めます。
  3. 出力配列のストライドを調べて入力と比較することによって、並べ替え順序を決定します。
  4. 残りの軸をマージするために、必要に応じて最終的な再形成を適用します。

追加の例

nd の再形成に関する詳細なガイダンスについては、提供されている他の例のリストを参照してください。 NumPy の配列。これらの変換を理解することは、多次元データを効果的に操作するために不可欠です。

以上が4D NumPy 配列を 2D 配列に再形成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:ウロボロス #01次の記事:ウロボロス #01