중첩 된 인덱스 목록에 따라 다차원 변수의 요소를 반환하는 함수를 정의하려고합니다. 여러 변수 (예 : 시간, 고도, 위도, 경도)에 따라 변수를 사용하고 있습니다.파이썬에서 다중 차원 목록의 요소를 반환하는 함수
이 3D 지금 (예를 들면, 시간, 고도와 위도)에 대한 확인 : 지금 처음 4 시간 단계, 처음 3 개 고도 수준 및 제 2 위도을 원하는 경우에
x = np.arange(125).reshape(5,5,5)
내가 여러 작업을 수행 할 수 있습니다 일 :
x[[0,1,2,3],:,:][:,[0,1,2],:][:,:,[0,1]]
또는
x[ [[[0]],[[1]],[[2]],[[3]]],[[0],[1],[2]],[0,1]]
또는
x[np.ix_([0,1,2,3],[0,1,2],[0,1])]
하지만 함수가 l
는 인덱스
l = [[0,1,2,3],[0,1,2],[0,1]]
이 기능이 같은 방법을 볼 수 있었다
의 목록입니다def get_elements(x, l)
같은 요소를 날 다시주고 싶은거야? 마지막 대안은 매우 가까이에 있지만 x[np.ix_(l)]
은 나를 IndexError
라고합니다.
또한 크기를 그대로 유지할 수있는 기회를 갖는 것이 좋습니다. 예 :이 의사 코드의 모든 시간 단계 사용 :
l = [[:],[0,1,2],[0,1]]
감사합니다.
좋아요! 그것은 내가 실제로 찾고 있었던 바로 그 것이다. 나는 그걸 찾는 방법을 몰랐다. 그러나 '확장'이 트릭을 만들었습니다. 또한 여기를보십시오 : [http://stackoverflow.com/questions/7745952/python-expand-list-to-function-arguments] – Lukas