배열의 모든 요소에 대한 인덱스 목록을 가져 오려고합니다. 따라서 1000 x 1000 배열의 경우 [(0,0), (0,1), ..., (999,999)]이다. 내가 시간 초과 후에는 (느린 노트북에 부여) 실행하는 데 약 650 밀리 복용되면서배열의 모든 요소에 대한 인덱스를 numpy로 가져 오기
def indices(alist):
results = []
ele = alist.size
counterx = 0
countery = 0
x = alist.shape[0]
y = alist.shape[1]
while counterx < x:
while countery < y:
results.append((counterx,countery))
countery += 1
counterx += 1
countery = 0
return results
, 그것은 매우 느린 듯 :
나는 아래 인이 작업을 수행하는 기능을했다. 그래서, 내 평범한 코딩보다 더 빠르게 할 수있는 방법이 있어야합니다 NumPy와를 계산, 나는 문서에보고했다 및 시도 :indices = [k for k in numpy.ndindex(q.shape)]
which took about 4.5 SECONDS (wtf?)
indices = [x for x,i in numpy.ndenumerate(q)]
better, but 1.5 seconds!
이 할 수있는 빠른 방법이 있나요?
감사
좋은 대답 올바른 2D 배열이고 가변 크기 목록 (+1) 목록이 아니라고 가정하면 –
아, 흠. 예. 글쎄, 나는 OP가 물었던 질문에 대답했다. 질문이 좀 더 일반적인 경우 확장 할 수 있습니다. – theJollySin
650ms ~ 326까지 지금 고마워! –