0

いくつかの xy データセットからピークに関連付けられた x インデックスを取得する良い方法を誰かが見つけ出すのを手伝ってくれるかどうか疑問に思っていました。d2y/dx2<0 および dy/dx=0 は x のピーク中心を表すことを知っています。変曲点は d2y/dx2=0 および |dy/dx|>0 にあります。しかし、変曲点から変曲点までのデータをリストとして取得したいと思います。(いくつかのピークを取得する必要があるため、リストのリストです)

したがって、変曲点から変曲点までの値のリストについては、次のように考えることもできます。

inflection_indices = [x for x in list( np.where( dY2dX2 < 0.0 )[0] )]

しかし、これはすべてのピークをまとめた 1 つのリストにすぎません。

リスト全体の各要素が個別のピークであるリストのリストが必要です。

このように: [ 14,15,16,17,18,19,20, 89, 90, 91, 92, 93, 94, 204, 205, 206, 207]

これが欲しいとき: [ [ 14,15,16,17,18,19,20] , [89,90,91,92,93,94] , [204,205,206,207] ]

これについて何か助けてくれてありがとう、本当に感謝します。

編集:すべてのタプルなどを完全に削除したので、後で追加できます。問題は今、問題の中心にあると思います。

4

1 に答える 1

0

私はこれに対する答えを見つけたと思いますが、それはまったくエレガントではありません...

self.list_of_peak_indeces = [x for x in list(np.where(self.dY2dX2 < 0.0)[0])]
temp_list = []
self.main_lists_of_peak_indices = []
difference_between_indices = np.hstack([np.diff(self.list_of_peak_indeces), np.diff(self.list_of_peak_indeces)[-1]+1])
    for index, item in enumerate(self.list_of_peak_indeces):
        if(np.absolute(difference_between_indices[index])!=1):
            if(temp_list!=[]):
                temp_list.append(item)
                self.main_lists_of_peak_indices.append(temp_list)
            temp_list = []
        else:
            temp_list.append(item)
于 2013-02-16T23:17:23.123 に答える