2011-10-18 3 views
3

서로 다른 크기의 두 배열의 파이썬/numpy 인덱스를 연결하려고하지만 작은 배열의 인덱스 1을 서브 루틴을 통해 큰 배열로 전달할 수 없습니다.배열 할당 numpy/: 콜론 해당하는

예를 들어, a1a2의 두 개의 배열이 있습니다. a1.shape = (240,33,258)a2.shape = (240,40,33,258). 나는 a1에서 인덱스를 찾고 이들 인덱스를 a2과 관련시킵니다. 즉, index1 = numpy.where(a > n). 나는 dat1.shape = (n)dat2.shape = (n, 40) 같은 결과 DAT 모양으로

dat1 = a1[index] 
dat2 = a2[index[0],:,index[1],index[2]] 

사용에 내가 관심있는 데이터를 잡아 수 있습니다. 프로그램 속도를 높이려면 서브 루틴을 통해 인덱스를 전달하고 싶지만 콜론 ':'을 전달할 수 없기 때문에 [index[0],:,index[1],index[2]]을 서브 루틴을 통해 전달할 수 없습니다.

나는 나의 해결책이 서브 루틴에서 ':'에 상응하는 숫자를 전달할 것이라고 믿지만 대답을 찾지 못했다.

어떤 도움이 필요합니까?

당신이 :을 표현하기 위해 slice(None)을 사용할 수 있어야

답변

4

대단히 감사합니다.

[index[0], slice(None), index[1], index[2]] 
+0

고마워,이게 내가 필요한거야. – NPB

2

으로 말에 따라, :slice(None)의 약어입니다. 슬라이스 튜플을 구성하기위한 편리한 구문으로 np.s_[index[0],:,index[1],index[2]]을 사용할 수도 있습니다.

+0

대단히 감사합니다! – NPB