2012-07-28 2 views
2

다차원 numpy 배열을 가지고 반복하고 싶습니다. 나는 가치뿐만 아니라 그들의 색인에도 접근 할 수 있기를 원한다. 죄송합니다.알 수없는 차원의 numpy 행렬에 반복 수행

for idx,val in enumerate(my_array): 

은 my_array가 다차원 일 때 작동하지 않는 것 같습니다. (idx가 튜플이되기를 바란다.) 중첩 된 for 루프는 작동하지만 런타임까지 배열의 차원 수를 알지 못합니다. 어쨌든 파이썬에는 적절하지 않습니다. 나는 이것을 (재귀, % 연산자의 자유로운 사용) 여러 가지 방법으로 생각할 수 있지만, 이들 중 아무 것도 매우 '파이썬 - 에스 케'처럼 보이지 않습니다. 간단한 방법이 있습니까?

+0

는'enumerate'은 항상 첫 번째 값의 정수를 반환합니다. 구체적으로 idx가 포함 할 것으로 예상되는 것은 무엇입니까? – Fraxtil

답변

7

나는 당신이 ndenumerate을 원한다고 생각 :

>>> import numpy 
>>> a = numpy.arange(6).reshape(1,2,3) 
>>> a 
array([[[0, 1, 2], 
     [3, 4, 5]]]) 
>>> list(numpy.ndenumerate(a)) 
[((0, 0, 0), 0), ((0, 0, 1), 1), ((0, 0, 2), 2), ((0, 1, 0), 3), ((0, 1, 1), 4), ((0, 1, 2), 5)] 
+0

argv! 방금 링크를 게시 할 설명서를 찾았습니다. – mgilson

+0

@mgilson : 이봐 요, 당신이 10k 승무원 중 한 명이되어 이제는 우리 모두에게 그것이 얼마나 자주 일어나는 지 알 수 있습니다. ; ^) – DSM

+0

예, 당신이 옳다고 생각합니다. (덧붙여서 +1) – mgilson

관련 문제