반응형
이 행의 모든 값의 합으로 numpy 배열 행을 어떻게 나눌 수 있습니까?
이것은 하나의 예입니다. 그러나 나는 이것을하는 화려하고 훨씬 더 효율적인 방법이 있다고 확신합니다.
import numpy as np
e = np.array([[0., 1.],[2., 4.],[1., 5.]])
for row in xrange(e.shape[0]):
e[row] /= np.sum(e[row])
결과:
array([[ 0. , 1. ],
[ 0.33333333, 0.66666667],
[ 0.16666667, 0.83333333]])
해결 방법
방법 # 1 : None
(또는 np.newaxis
)을 사용하여 방송이 작동하도록 추가 차원을 추가합니다.
>>> e
array([[ 0., 1.],
[ 2., 4.],
[ 1., 5.]])
>>> e/e.sum(axis=1)[:,None]
array([[ 0. , 1. ],
[ 0.33333333, 0.66666667],
[ 0.16666667, 0.83333333]])
방법 # 2 : transpose-happy로 이동 :
>>> (e.T/e.sum(axis=1)).T
array([[ 0. , 1. ],
[ 0.33333333, 0.66666667],
[ 0.16666667, 0.83333333]])
(원하는 경우 간결성을 위해 axis =
부분을 삭제할 수 있습니다.)
방법 # 3 : (Jaime의 의견에서 승격 됨)
차원을 유지하려면 sum
에 keepdims
인수를 사용하십시오.
>>> e/e.sum(axis=1, keepdims=True)
array([[ 0. , 1. ],
[ 0.33333333, 0.66666667],
[ 0.16666667, 0.83333333]])
참조 페이지 https://stackoverflow.com/questions/16202348
반응형
'파이썬' 카테고리의 다른 글
파이썬 하위 프로세스 호출에서 종료 코드 및 stderr 가져 오기 (0) | 2021.01.19 |
---|---|
파이썬 간단한 스레딩 이벤트 예제 (0) | 2021.01.19 |
파이썬 Map의 키 배열 가져 오기 (0) | 2021.01.19 |
파이썬 파일 모드 "w +"와 혼동 (0) | 2021.01.19 |
파이썬 Python 전역 변수 및 클래스 기능 (0) | 2021.01.19 |
댓글