당신은 합산 동안 차원의 수를 유지하기 위해 keepdims=1
를 사용하고 단순히 분할을 수행 그래서 같은 수 - 당신은 이미 합계가 저장 한 경우, 우리는에 의해 3D
로 확장 할 수
ary/ary.sum(axis=2, keepdims=1).astype(np.float)
또는 그래서 같은 None/np.newaxis
가진 새로운 축을 도입하고 분할을 수행 -
ary/ary.sum(axis=2).astype(np.float)[...,None]
를 들어 summatio ns가 zeros
인 경우 출력의 해당 위치에 NaNs
및 Infs
이 표시됩니다. 분할 출력을 얻기 위해 이전 코드를 사용, 또는
sums = ary.sum(axis=1,keepdims=1)
out = np.where(sums!=0, ary/sums.astype(np.float),0)
마지막으로 유한 한 것들에 대한보고 zeros
로 설정 나머지 - -
np.where(np.isfinite(out1), out1,0) # out1 is o/p from earlier section
출력에
zeros
로 사람들을 설정하려면, 하나의 방법은
np.where
을 사용하는 것입니다
super cool;), 모든 나노와 inf를 0으로 설정하는 방법이 있습니다. 나는 작전 전에 1을 더할 수는 있지만 지름길이 있는지 궁금해하고 있었다. – user1019129
나는 이것을했다 : ary [np.isnan (ary)] = 0. 내 기본 질문에 대답했기 때문에 질문을 닫을 것이다. 고마워. – user1019129