2017-11-20 15 views
0

나는 numpy 1d 배열을 가지고 있고 그 값이 다른 1d 배열에 의해 지정된 닫힌 간격에 있도록 배열의 인덱스를 찾고 싶습니다. 구체적으로, 여기에 A의 값은 b는 정렬 된 순서로 0에서 시작하여 최대 가능한 값으로 끝나는 항상 (이 간격 폐쇄요소가 닫힌 간격에있는 것과 같은 인덱스

A= np.array([ 0.69452994, 3.4132039 , 6.46148658, 17.85754453, 
     21.33296454, 1.62110662, 8.02040621, 14.05814177, 
     23.32640469, 21.12391059]) 
b = np.array([ 0. , 3.5, 9.8, 19.8 , 50.0]) 

나는 B의 인덱스를 찾으려면 있도록 예이다 A는 지금까지 걸릴 수 있습니다.

를이 특정 예에서, 내 출력이 내가 할 수있는 방법

indx = [0,0,1,2,3,0,1,2,3,3] 

될 것인가?. 내가 np.where과 노력을 어떤 성공하지.

답변

0

G를 b의 정렬 된 특성으로 인해 searchsorted/digitize을 사용하여 A의 요소가 정렬 된 순서를 유지할 수있는 인덱스를 가져올 수 있습니다. 이는 본질적으로 b 요소의 경계 인덱스를 가져 와서 해당 인덱스에서 1을 뺍니다. 원하는 출력을 위해.

따라서, 우측 경계를 가정하면 개방 하나는, 용액 것 - 좌측 경계 개방 용

np.searchsorted(b,A)-1 
np.digitize(A,b,right=True)-1 

사용 :

np.searchsorted(b,A,'right')-1 
np.digitize(A,b,right=False)-1