2013-02-16 1 views
0

누군가가 xy 데이터 세트의 피크와 관련된 x 인덱스를 얻는 좋은 방법을 찾도록 도와 줄 수 있는지 궁금합니다. 저는 d2y/dx2가 <이고 dy/dx = 0은 x의 피크 중심을 나타냅니다. 변곡점은 d2y/dx2 = 0 및 | dy/dx |> 0에있다. 그러나 굴절에서 굴절까지의 데이터를 목록으로 가져오고 싶습니다.정수의 연속성으로리스트 분리

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

그러나,이 : 나는 또한 값의 포인트 목록을 활용하는 변곡점이 가지고 올 수 있어요,

그래서 (그래서 목록의 목록 나는 몇 피크를 얻을 필요가 있기 때문에) 같이 던져지는 봉우리들에 대한 목록을 하나씩 주셨습니다.

전체 목록의 각 요소가 별도의 피크 인 목록 목록을 갖고 싶습니다. 이와 같이

[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], [204205206207]]

감사합니다. 고맙습니다.

편집 : 튜플 등을 모두 경쟁적으로 제거 했으므로 나중에 추가 할 수 있습니다. 이제는 문제의 핵심이 더 중요하다고 생각합니다.

+0

나는 그것을 시도하지 않았지만 목록에서 X (NP 아마도'inflection_indices의 = [(X) .where (dY2dX2 <0.0) [0])]'. 괄호와 쉼표를 참고하십시오. – mlt

+0

그 추가는 각 정수를 다음과 같이 고유 한 튜플에 넣는 것만은 아닙니다 : [(1,), (2), (3), (4), (5)) – chase

+1

It 샘플을 제공하면 도움이 될 것입니다. 나는 당신이 몇 걸음 씩 걸어야한다고 생각해. 아마도 np.diff (np.where (dY2dX2 <0.0))를 사용하여 휴식을 발견하고 그것이 * a * 인 인덱스를 얻을 수 있습니다. 그런 다음 [: len (a) -1] -1과 [2 :]를 사용하여 시작/끝 인덱스를 만들고이를 사용하여 조각을 만듭니다. 그 줄에 뭔가있어. – mlt

답변

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)