bugfix> python > 投稿

私はこのnumpy配列を持っています:

array(   
[[  1.        ,   9.        , 565.98653513],  
[  1.        ,   1.        , 973.18466261],  
[  1.        ,  25.        , 803.17747373],  
[  2.        ,   9.        ,  82.56336897],  
[  2.        ,   1.        , 104.69517373],  
[  2.        ,  25.        , 627.01127514],  
[  3.        ,  21.        , 334.07622382],  
[  3.        ,  34.        , 921.37623107],  
[  3.        ,  20.        , 342.08177942],
... ...  ... ...
[ 10.        ,   7.        , 424.29338026],  
[ 10.        ,   0.        , 232.71475407],  
[ 10.        ,   1.        , 330.44846202]])

しかし、1、2、3、...、10というサイクルの最初の列で行列を並べ替えたいと思います。次のようになります。

array(   
[[  1.        ,   9.        , 565.98653513],  
[  2.        ,   9.        ,  82.56336897],  
[  3.        ,  21.        , 334.07622382],  
... ... ... ...  
[ 10.        ,   7.        , 424.29338026], 
[  1.        ,   1.        , 973.18466261],  
[  2.        ,   1.        , 104.69517373],  
[  3.        ,  34.        , 921.37623107],  
... ... ... ...  
[ 10.        ,   0.        , 232.71475407],
[  1.        ,  25.        , 803.17747373],  
[  2.        ,  25.        , 627.01127514],  
[  3.        ,  20.        , 342.08177942],  
... ... ... ...  
[ 10.        ,   1.        , 330.44846202]]) 

これどうやってするの?

並べ替えオプションを増やすためにデータフレーム(パンダなど)に変換してから、配列に変換することを考えていました...しかし、これを行うための簡単な関数は見当たりません。

私はどんな助けやアイデアにも感謝します。

回答 1 件
  • 配列に名前が付けられていると仮定します x

    y = [x[i::10] for i in range(int(len(x)/10))]
    y = np.array(y)
    y.reshape(x.shape)
    print(y)
    
    

    ザ・ x[i:j:k] 表記とは x からjステップ付きk。そう x[i::10] 平均 x から終わりステップ付き10

    詳しくはこちらをご覧ください。

あなたの答え