axis -1keepdims is important to block numpy broadcasting semantic np.sum([[1,2],[3,4]], axis=0) # [4, 6] np.sum([[1,2],[3,4]], axis=1) # [3, 7]