88159


累積和に基づく順序でリストを結合したいのですが良い方法はありませんか？

[code]

    list_a = [0.39379078 0.43637504 0.08379634 0.05934067 0.02669717]
    list_b = [0.39313739 0.4365064  0.08538897 0.05935853 0.02560871]
    list_c = [0.3764537  0.45625286 0.09896868 0.05325728 0.01506747]
    list_d = [0.16715008 0.20869567 0.34901068 0.10892968 0.09896519 0.05218175 0.01506694]
    
    cumsum_list_a = [0.39379078 0.83016582 0.91396216 0.97330283 1.        ]
    cumsum_list_b = [0.39313739 0.82964379 0.91503275 0.97439129 1.        ]
    cumsum_list_c = [0.3764537  0.83270656 0.93167524 0.98493253 1.        ]
    cumsum_list_d = [0.16715008 0.37584575 0.72485644 0.83378612 0.9327513  0.98493306 1.        ]
    
[/code]


CC BY-SA 4.0
2022-04-04T02:55:42.400
88158
2022-04-04T04:48:33.860
50898
question
python numpy
Python で配列を merge する方法


自己解決しました．

[code]

    import numpy as np
    
    list_a = np.array([0.39379078, 0.43637504, 0.08379634, 0.05934067, 0.02669717])
    list_b = np.array([0.39313739, 0.4365064, 0.08538897, 0.05935853, 0.02560871])
    
    tmp_list = np.sort(np.append(np.cumsum(list_a), np.cumsum(list_b)))
    dest_list = []
    for i in range(len(tmp_list) - 1):
        dest_list.append(tmp_list[i + 1] - tmp_list[i])
        
    print(dest_list)
    
[/code]

で`[0.0006533900000000314, 0.43585301, 0.0005220299999999511,
0.08379634000000002, 0.0010706000000000326, 0.05827006999999995,
0.0010884600000000688, 0.02560870999999998, 0.0]`が得られました．  
元々の目的が「小さすぎる間隔の削除」にあるのと，2つ以上のリストを扱えるので自己解決としました．  
総和は正規化して解決しようと思います．  
ありがとうございました！


CC BY-SA 4.0
2022-04-04T04:48:33.860
88159
2022-04-04T04:48:33.860
50898
88158
answer