v = np.array([[1,2],[3,4]]) v.sum(axis=0) # column 합 # array([4, 6]) v.sum(axis=1) # row 합 # array([3, 7])
: 배열 차원을 재구조화 및 변경하고자 할 때 reshape() 함수 사용
a = np.arange(1,5) #(4,) a.reshape(-1,1) # (4,1) np.reshape(a,(-1,1)) a[:,None] # (4,1)
차원이 다른 경우 브로드캐스팅이 될 때가 있고 안될 때가 있는데,
axis = 1로 연산을 했을 경우 브로드캐스팅 연산이 불가능한 경우, 다음과 같은 에러 발생
이 경우, (3,)를 (3,1)로 변경해주면 된다.
But, 매번 차원을 바꿔주기 귀찮으니 이때 사용하는 것이 바로 keepdims이다.
keepdims를 적용하면 차원이 사라졌던 부분이 1로 바뀌면서 shape와 관계 없이 브로드캐스팅이 가능한 상태가 된다.
a = np.arange(12).reshape((3,-1)) # (3,4) >> array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11]]) np.sum(a, axis=0) # (4,) >> array([12, 15, 18, 21]) np.sum(a, axis=0, keepdims=True) # (1,4) >> array([[12, 15, 18, 21]])
reference : https://domybestinlife.tistory.com/149
https://yeko90.tistory.com/entry/%EB%84%98%ED%8C%8C%EC%9D%B4-%EA%B8%B0%EC%B4%88-axis-keepdims-%EB%A7%88%EC%8A%A4%ED%84%B0%ED%95%98%EA%B8%B0