94074


Pythonの3次元のndarray配列にて、下記のように例えば`[[0 1][2 3]]`の逆の組み合わせである`[[2 3][0
1]]`を削除させたいです。

[code]

    import numpy as np
    
    
    arr1 = np.array([[[0, 1], [2, 3]],
                     [[4, 5], [6, 7]],
                     [[2, 3], [0, 1]],
                     [[2, 3], [4, 5]],
                     [[6, 7], [4, 5]],])
    
    arr2 = np.array([[[0, 1], [2, 3]],
                     [[4, 5], [6, 7]],
                     [[2, 3], [4, 5]],])
    
[/code]

なかなか上手くいっていないのでご教授いただけますと幸いです。  
よろしくお願い申し上げます。


CC BY-SA 4.0
2023-03-06T05:05:54.797
94073
2023-03-06T06:24:33.863
2023-03-06T06:03:08.327
51374
57404
question
python python3 numpy array
Pythonの3次元配列で指定したある組み合わせの配列を削除させたい

[code]

    import numpy as np
    
    arr1 = np.array(
        [[[0, 1], [2, 3]],
         [[4, 5], [6, 7]],
         [[2, 3], [0, 1]],
         [[2, 3], [4, 5]],
         [[6, 7], [4, 5]]])
    
    _, idx = np.unique(np.sort(arr1, axis=1), axis=0, return_index=True)
    arr2 = arr1[np.sort(idx)]
    
    print(arr2)
    
    # [[[0 1]
    #   [2 3]]
    # 
    #  [[4 5]
    #   [6 7]]
    # 
    #  [[2 3]
    #   [4 5]]]
    
[/code]


CC BY-SA 4.0
2023-03-06T06:02:54.473
94074
2023-03-06T06:24:33.863
2023-03-06T06:24:33.863
47127
47127
94073
answer