나는 MATLAB에서 Numpy로 전환하면서 성장 통증을 느끼고 있습니다.3 차원 어레이의 평면에 넘치는 합계, 스칼라 반환
저는 3 차원 배열을 가지고 있다고 말하면 3x3x3이고 각 평면의 스칼라 합이 필요합니다. MATLAB에서 , 내가 사용합니다 :
sum_vec = sum(3dArray,3);
TIA 세계 은행
편집 : 내 MATLAB 코드에 대해 잘못이었다. Matlab은 희미하게 만 벡터화되므로 루프가 필요합니다. 그래서 numpy는 더 우아한 것으로 밝혀진다. .. 시원한.
MATLAB
for i = 1:3
sum_vec(i) = sum(sum(3dArray(:,:,i));
end
응답 해 주셔서 감사합니다. 나는 더 분명 할 필요가있다. 3dArray의 각 평면에 대해 스칼라 벡터를 원합니다. 여기서 각 스칼라는 전체 평면의 합계입니다. 그러므로 3x3x3 배열의 경우 sum_vec = ([43, 123, 455]) – wbg
@wbg가되므로 합계를 두 번하고 싶습니다 (matlab 코드에서도 그렇게하지는 않습니다).새로운 numpy에서는'array.sum ((1,2))'도 수행 할 수 있으며, 두 축을 직접 합쳐서 한번에 합칠 수 있습니다. – seberg
예, 맞습니다 ...! 그건 슬픈, 내가 잠시 동안 정기적으로 파이썬을 해왔 던데, matlab은 단지 하나의 희미하게 벡터화하는 것을 잊었다. 그래서 3d 배열은 반복되어야한다. – wbg