2013-08-31 2 views
2

4-D (d0, d1, d2, d3, d4) numpy 배열이 있습니다.numpy를 사용하여 평균 배열을 얻는 방법

area=d3*d4 
mean = numpy.sum(numpy.sum(data, axis=3), axis=2)/area 

하지만 어떻게 평균 배열을 얻을 수 numpy.mean을 사용할 수 있습니다 : 나는 2-D 싶어 (D0을, D1) 배열을 의미 지금 내 솔루션은 다음과 같습니다.

답변

4

당신은 바꿀 다음 평균을 수행 할 수 있습니다 : 당신이 문서화되지 않은 기능을 사용하지 않으려면

mean = data.mean(axis=(2, 3)) 

, 당신은 단지 두 개의 패스를 할 수 있습니다 : 그럼에도 불구하고, 당신의 자신의 위험에 사용

: NumPy와에서
res = data.reshape(data.shape[0], data.shape[1], -1).mean(axis=2) 

당신이 axis 인수에 튜플을 전달할 수 있습니다 1.7.

0

적어도 버전 1.7.1에서 meanaxis 매개 변수에 대한 축의 튜플을 지원하지만이 기능은 문서화되어 있지 않습니다. sum과 같은 루틴이 동일한 기능을 문서화하기 때문에 이것은 당신이 의존하지 말아야 할 것보다 오래된 문서의 사례라고 생각합니다.

mean = data.mean(axis=3).mean(axis=2) 
+0

하지만 내 길은 내 것보다 조금 느린 것 같아. Beacause 당신은 두 시간 부분을 올바르게 가지고 있습니다. – Samuel

+0

@ Samuel 왜 'timeit'을 쓰고 보지 않으 시렵니까?) – tacaswell

+0

내 NumPy 1.7.1에서 축에 대한 튜플을 지원합니다 ... –

관련 문제