2013-04-11 3 views
19

나는 배열이 있습니다. 모든 세 번째 요소의 평균 인 새 배열을 만들고 싶습니다. 그래서 새로운 배열은 원래 크기의 1/3이 될 것입니다.numpy 배열의 모든 n 요소에 평균을 취합니다.

np.array([2,2,2]) 

사람이 일을하는 효율적인 방법을 제안 할 수 있습니다 :

np.array([1,2,3,1,2,3,1,2,3]) 

배열을 반환해야합니다 : 예를 들어

? 나는 공백을 그리고있다. 어레이 arr 3으로 나누어지는 길이가 있으면

답변

31

:

np.mean(arr.reshape(-1, 3), axis=1) 

높은 차원 배열 재편 후 추가적인 차원 중 하나에서 동작을 줄일 어떤 형태의 수행은 NumPy와 프로그래밍 필수품이다.

+7

자이 메 - 감사합니다. 일을하는 데 매우 우아한 방법입니다. 이러한 소위 말하는 'numpy 프로그래밍의 중요성'에 대한 조언이 있습니까? – user1654183

+1

'arr' 길이가 3으로 나눌 수없는 경우 다음과 같이 할 수 있습니다 : 'arr = np.nanmean (nr.pad (arr.astype (float), (0, 3 - arr.size % 3), mode = '상수', constant_values ​​= np.NaN) .extape (-1, 3), 축 = 1)' – plong0

관련 문제