NumPyを使用した2次元配列の分割方法


  1. np.split関数を使用した分割: np.split関数は、指定した軸に沿って配列を均等に分割することができます。以下は、2次元配列を行方向に均等に分割する例です。

    import numpy as np
    arr = np.array([[1, 2, 3],
                   [4, 5, 6],
                   [7, 8, 9],
                   [10, 11, 12]])
    result = np.split(arr, 2, axis=0)
    print(result)

    出力:

    [array([[1, 2, 3],
           [4, 5, 6]]),
    array([[ 7,  8,  9],
           [10, 11, 12]])]
  2. np.hsplitとnp.vsplit関数を使用した分割: np.hsplit関数は、水平方向(列方向)に配列を分割し、np.vsplit関数は垂直方向(行方向)に配列を分割します。以下は、それぞれの関数を使用した例です。

    import numpy as np
    arr = np.array([[1, 2, 3, 4],
                   [5, 6, 7, 8],
                   [9, 10, 11, 12]])
    hsplit_result = np.hsplit(arr, 2)
    vsplit_result = np.vsplit(arr, 3)
    print("Horizontal Split:")
    for sub_array in hsplit_result:
       print(sub_array)
    print("Vertical Split:")
    for sub_array in vsplit_result:
       print(sub_array)

    出力:

    Horizontal Split:
    [[1 2]
    [5 6]
    [9 10]]
    [[ 3  4]
    [ 7  8]
    [11 12]]
    Vertical Split:
    [[1 2 3 4]]
    [[5 6 7 8]]
    [[ 9 10 11 12]]

これらはNumPyを使用して2次元配列を分割するいくつかの方法です。必要に応じてこれらのコード例を参考にして、独自の分割方法を実装してみてください。